รายละเอียดของการตอบ ::
ตารางสินค้า ( product)
- รหัสสินค้า (pid : int(8))
- ยี่ห้อสินค้า (pname : text)
- รูปสินค้า (pimage : varchar(200))
- ประเภทสินค้า (catid : int(5))
- สถานนะการแสดงผล (catactive :tinyint(1))
- รายละเอียด (detail : text)
(แต่ละชนิดจะไม่เหมือนกันเลยคิดว่านำมารวมกัน (รุ่น,ขนาด,สี))
- ราคา (pprice : double)
(แต่ละสินค้าจะขายไม่เหมือนกันจะมีแบบเป็นชินและเป็นกล่อง,แต่ละกล่อง ก็ไม่เท่ากัน)
- สถานนะการแสดงผล (pactive : tinyint(1))
- จำนวนสินค้า (stock_now : int(5))
ประเภทสินค้า (category)
- รหัสสินค้า (catid : int(5))
- ชื่อประเภท (catname : varchar(200))
- สถานนะการแสดงผล (catactive : tinyint(1))
- ประเภทแยกย่อย (parentID : int (5))
[font=Verdana]ไม่ต้องมีตาราง แยกประเภทสินค้า [/font]
[glow=red]เนื่องจาก เราใช้[font=Verdana] parentID [/font] ที่ลิงค์กับ PK id ของ Table ตัวเองได้ คือ [font=Verdana]catid [/font] เพื่อบอกให้รู้ว่าข้อมูลที่ดูอยู่ เป็นประเภทย่อยของประเภทหลักตัวไหนได้[/glow]
[glow=red]เช่น ถ้า สินค้า catid 1 มี parentID 5 ก็หมายความว่า catid 5 เป็นสินค้าหลักของ catid 1 ถ้า catid 5 มี parentID=0 ก็แปลว่า catid 5 เป็นสินค้าหลัก ซึ่งก็หมายความว่า catid 5 เป็นสินค้าหลักไปแล้ว และต่อมา catid 1 ก็คือลูกหรือ สินค้าย่อย(ที่อยู่ชั้นบนสุดเสมอตามที่คุณนุพยายามจะทำ)
อีกกรณีหนึ่ง เรื่องของสินค้าชั้นรองลงมาล่ะ? ก็ทำเหมือนกันแหละค่ะ คือไล่จาก parentID ต่อไปอีก เช่น
catid 2 มี parentID 10 (ซึ่งตาม logic เดิม) ผูกกับ ของ catid 10 แล้ว catid 10 ก็มี parentID อีก คือ catID 3 ที่มี parentID= 0 แปลว่า [font=Verdana]เจ้า catid 3 คือสินค้าหลัก จบ ตามตัวอย่างก็จะได้ว่า [/glow]
catid 2 เป็นสินค้าที่อยู่บนชั้นรองลงมา (ลูกของลูก ของ สินค้าประเภทกระดาษ)
catid 10 เป็นสินค้าที่อยู่ชั้นบนสุด(ลูก ของสินค้าประเภทกระดาษ)
catid 3 เป็นสินค้าหลัก (กระดาษ) [/font]
ละเอียดเชียว ลองทำดูละกันนะคะ ^^!