บริษัทต้องการออกแบบฐานข้อมูลสำหรับระบบสมาชิกที่มีการต่ออายุรายปี โดยสมาชิก 1 คนสามารถต่ออายุได้หลายครั้ง และต้องการเก็บประวัติการต่ออายุทุกครั้ง การออกแบบตาราง Membership ในข้อใดเหมาะสมที่สุด
กสร้าง 2 ตาราง คือ Member(MemberID, Name, Email) และ MembershipRenewal(RenewalID, MemberID, StartDate, EndDate, Status) โดย MemberID เป็น Foreign Key
ขสร้างตารางเดียว คือ Member(MemberID, Name, Email, StartDate, EndDate, RenewalCount) โดยอัปเดต EndDate และ RenewalCount ทุกครั้งที่มีการต่ออายุ
คสร้าง 2 ตาราง คือ Member(MemberID, Name, Email, CurrentRenewalID) และ Membership(MembershipID, StartDate, EndDate) โดยไม่มีความสัมพันธ์ระหว่างตาราง
งสร้างตารางเดียว คือ Membership(MemberID, Name, Email, StartDate1, EndDate1, StartDate2, EndDate2, StartDate3, EndDate3) เพื่อรองรับการต่ออายุได้สูงสุด 3 ครั้ง
เฉลยอธิบาย
ตัวเลือก A ถูกต้องเพราะแยกข้อมูลสมาชิกและประวัติการต่ออายุออกเป็น 2 ตาราง สอดคล้องกับหลัก Normalization ช่วยให้เก็บประวัติการต่ออายุได้ไม่จำกัดครั้ง และใช้ Foreign Key เชื่อมความสัมพันธ์อย่างถูกต้อง ตัวเลือก B มีปัญหาเพราะไม่เก็บประวัติการต่ออายุแต่ละครั้ง ตัวเลือก C ไม่มีความสัมพันธ์ระหว่างตาราง ทำให้ข้อมูลขาดความสมบูรณ์ และตัวเลือก D มีโครงสร้างที่ผิดหลัก 1NF เพราะเก็บข้อมูลซ้ำในรูปแบบ Repeating Groups