Friday, April 9, 2010

การพิจารณาความสัมพันธ์ระหว่าง 2 table

  • ดังภาพความสัมพันธ์ของ 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

Popular Posts