ในการออกแบบระบบการขายอนลาইน ข้อมูลส่วนลด (Discount) อาจใช้ได้ในหลายสถานการณ์: ส่วนลดต่อสินค้าบางชนิด ส่วนลดต่อลูกค้าVIP ส่วนลดต่อจำนวนซื้อ ส่วนลดตามเทศกาล ควรออกแบบอย่างไร

สร้างตาราง ProductDiscount, CustomerDiscount, QuantityDiscount, PromotionDiscount โดยใช้กรรมการเชื่อมโยง Discount เดียว
เก็บข้อมูลทั้งหมดในตาราง Order และคำนวณส่วนลดทำนายหลังจากบันทึก
สร้างฟิลด์ Discount ในตาราง Product, Customer, OrderItem, Promotion แล้วใช้ Logic ในโปรแกรมเพื่อตัดสินใจว่าส่วนลดใดจะใช้
สร้างตาราง Discount เดียวที่เก็บประเภทส่วนลด ขอบเขต (Range) เงื่อนไข และค่าส่วนลด พร้อมเก็บข้อมูลตัวอ้างอิง (Reference) ไปยังที่สอง Product/Customer/Promotion

เฉลยอธิบาย

การออกแบบที่ยืดหยุ่นต้องสร้าง Discount เป็นตารางกลาง (Hub Table) ที่เก็บ: DiscountID, DiscountType (e.g., 'Product', 'Customer', 'Quantity', 'Promotion'), Condition, DiscountValue, StartDate, EndDate จากนั้นสร้างตาราง Product_Discount, Customer_Discount, Order_Item_Discount, Promotion_Discount เพื่อเชื่อมโยง ตัวเลือก A ไม่เป็นระเบียบและจะเกิดซ้ำซ้อน ตัวเลือก C ใกล้เคียง แต่ B เป็นการออกแบบที่ Scalable และ Normalized มากกว่า ตัวเลือก D ไม่เป็นระเบียบและผิดหลักการ

ข้อสอบอื่นในวิชาความรู้ความสามารถในการวิเคราะห์ ออกแบบ ฐานข้อมูล

ดูข้อสอบวิชานี้ทั้งหมด →