คือว่าผมกำลัง งง กับการออกแบบฐานข้อมูล mysql โดยมีข้อมูลที่ต้องเก็บในลักษณะนี้ครับ
สมมุติว่า เราต้องการเก็บข้อมูล รถคันนึง โดยที่รถคันนั้นมี ประกันภัยมาเกี่ยวข้องด้วย ซึ่งประกันภัยนั้นมีวันหมดอายุ เมื่อหมดอายุเราต้องเพิ่มประกันภัยของรถคันนั้นเข้าไปใหม่โดยสามารถทราบข้อมูลประกันภัยอันเก่าได้ด้วย (history)
เราควรจะออกแบบอย่างไรดีครับ
เท่าที่ผมคิดไว้ 2 แบบคือ
แบบแรก many-to-many
มีตารางของรถ ตารางของประกัน และตารางของประวัติประกัน
ตารางรถ มีคอลั่ม : ชื่อรถ, รายละเอียด
ตารางประกัน มีคอลั่ม : เวลาหมดประกันรถหาย (timestamp nullable), เวลาหมดประกันรถชน (timstamp nullable)
ตารางประวัติประกัน มีคอลั่ม : id_รถ, id_ประกัน
ซึ่งเวลาหาว่ารถคันนั้นมีประกันไหมหมดเมื่อไหร่ก็จะดูจากตารางประวัติประกัน อ้างอิงจาก id_รถ แล้วเลือกอันล่าสุด
หรือแบบที่ 2 one-to-many
ตารางรถ มีคอลั่ม : ชื่อรถ, รายละเอียด
ตารางประกัน มีคอลั่ม : id_รถ, เวลาหมดประกันรถหาย (timestamp nullable), เวลาหมดประกันรถชน (timstamp nullable)
ซึ่งเวลาหาว่ารถคันนั้นมีประกันไหมหมดเมื่อไหร่ก็จะดูจากตารางประกัน อ้างอิงจาก id_รถ แล้วเลือกอันล่าสุด
ผมกำลัง สับสนว่าทั้ง 2 แบบมันแตกต่างกันอย่างไรแล้วควรจะใช้แบบไหนดี
หรือท่านใดมีแบบอื่นแนะนำ รบกวนทีครับ
ขอบพระคุณมากๆครับ