ในส่วนหนึ่งของโครงการล่าสุดที่ฉันเริ่มวางแผน ฉันจำเป็นต้องสร้างโครงสร้างของฐานข้อมูลที่จะประกอบด้วยผลิตภัณฑ์หลายอย่าง ตัวอย่างเช่น ลองนึกถึงวิธีจัดโครงสร้างของ Amazon มีหลายประเภทและภายในหมวดหมู่เหล่านั้นมีหมวดหมู่ย่อยหลายหมวด
ปัญหาของฉันคือตามแนวคิดแล้ว ฉันไม่แน่ใจเกี่ยวกับวิธีการสร้างตารางฐานข้อมูล ฉันเคยคิดที่จะสร้างตารางอ้างอิงตัวเองสำหรับหมวดหมู่และหมวดหมู่ย่อย แต่เนื่องจากฉันวางแผนที่จะมีผลิตภัณฑ์ที่หลากหลายในฐานข้อมูล ฉันไม่รู้ว่าควรจัดกลุ่มให้เป็นตารางเดียวที่เรียกว่า " ผลิตภัณฑ์" หรือวางทั้งหมดไว้ในตารางแยกกัน
ตัวอย่างเช่น ห้องน้ำอาจเป็นผลิตภัณฑ์ชิ้นหนึ่ง ในขณะที่โทรทัศน์อาจเป็นอีกผลิตภัณฑ์หนึ่ง แม้ว่าจะมีหมวดหมู่/หมวดหมู่ย่อยที่แตกต่างกัน แต่ก็เป็นผลิตภัณฑ์ทั้งสอง เมื่อวางไว้ในตาราง "ผลิตภัณฑ์" เดียว พวกเขาจะแชร์แอตทริบิวต์ที่ไม่สมเหตุสมผลสำหรับทั้งคู่ ห้องน้ำไม่จำเป็นต้องมีแอตทริบิวต์สำหรับความละเอียดหรือขนาดการแสดงผล (เว้นแต่จะเป็นห้องน้ำที่พิเศษมาก) และโทรทัศน์ก็ไม่จำเป็นต้องมีแอตทริบิวต์ขนาดที่นั่ง
ฉันคิดว่าวิธีหนึ่งที่จะหลีกเลี่ยงสิ่งนี้และยังคงเก็บทุกอย่างไว้ในตารางเดียวคือการสร้างแอตทริบิวต์ NOT NULL จำนวนมากที่อาจขาดหายไปสำหรับบางรายการหากไม่จำเป็น แต่สามัญสำนึกกำลังบอกฉันว่านี่อาจจะไม่ วิธีที่ดีที่สุดในการทำสิ่งต่างๆ
ณ จุดนี้ ฉันรู้สึกว่าปัญหาที่แท้จริงของฉันคือการหาวิธีจัดโครงสร้างฐานข้อมูลและตารางด้วยหมวดหมู่/หมวดหมู่ย่อยหลายประเภท และรายการประเภทต่างๆ ฉันจะสร้างโต๊ะสำหรับโทรทัศน์และโต๊ะสำหรับห้องน้ำหรือไม่? ทั้งหมดนี้จะมีโครงสร้างอย่างไร? โดยปกติแล้วปัญหาประเภทนี้มีการวางแผนไว้อย่างไร?
ขอบคุณ