- ดังภาพความสัมพันธ์ของ Northwind
- ในที่นี้ขอยกตัวอย่างระหว่าง Customers กับ Orders
แนวความคิดเดิม
- แต่ก่อนเคยคิดว่า เราจะ 1 หรือ M วางไว้ด้านใหนดี อันนี้คิดว่าแล้วแต่เราจะกล่าวถึง Table ใหนก่อน
- ซึ่งถ้าคิดแบบนี้ จะเอา 1 วางด้านใหนก็ได้ มันเป็นความคิดที่โง่มาก งงอยู่ ตั้งนาน
- ถ้าคิดแบบแต่ก่อน สมมุติมองที่ ตาราง Orders ก่อนก็จะประมาณว่า orderid หนึ่งจะถูกสั่งด้วย customerid คนเดียว ความสัมพันธ์มันก็จะเป็น 1 ต่อ 1 ใช่ปะ
- ซึ่งเห็นหลายคนที่เราถาม ตารางประมาณนี้เค้าตอบกัน 1 ต่อ 1 ซะงั้น
- อีกตัวอย่าง เช่น สมมุติมี table Provinces มี provinceid เป็น PK ของ table แต่เป็น provinceid เป็น FK ที่ Table Personals ที่มี personid เป็น PK ประมาณนี้ก็จะมองหว่า personid 1 สามารถมีได้แค่ 1 provinceid ทำให้ได้ความสัมพันธ์แบบ 1 ต่อ 1
- ถ้ามองที่ ตาราง Customers ก่อนก็จะเป็นcustomerid หนึ่งสามารถมี ordersid ได้มากกว่า 1 ความสัมพันธ์ก็จะได้ 1 ต่อ M
- เห็นปะ มุมมองไม่เหมือนกันก็จะได้ความสัมพันธ์ที่ต่างกันแหละ
แนวความคิดใหม่ (เป็นแนวคิดของผู้เขียน juuier โมเมเอง)
- ให้มองตารางที่มี PK เป็น FK ของอีกตารางหนึ่ง จาก 2 ตารางที่สัมพันธ์กันนะ
- ให้ความสัมพันธ์ด้านตารางที่เป็น PK นั้นเป็น 1 ที่ และอีกที่ตารางให้เป็น M
สุดท้าย
- แนวความคิดนี้ เป็นแนวความคิดส่วนตัว ไม่รู้ว่าถูกต้อง หรือ อาจจะไม่ถูกก็เป็นได้
- จากที่มองตารางใน northwind มันเป็นแนวนั้นอ่ะ
No comments:
Post a Comment