325
ห้อง MS Access / > อยากรู้ว่า ใน 1 ตารางนั้น มี primary key ได้มากกว่า 1 ฟิลด์ ใช่มั้ยครับ แล้ว
« เมื่อ: 01 มี.ค. 61 , 18:47:35 »
ฐานข้อมูลแบบ Relational Database ทุกๆยี่ห้อ ทุกเทเบิลต้องมี PK (Primary Key) เพื่อระบุเรคอร์ดไหนคือเรคอร์ดไหน (ถ้าไม่มี ระบบจัดการภายในจะสร้างขึ้นมาเพื่อใช้งานเอง แต่***อาจจะ***ไม่มีบันทึกเป็นฟิลด์ให้ผู้ใช้เห็น) PK จะมีความหมายหรือไม่มีก็ได้ เช่น อาจใช้เลข 1,2,3,... เป็น PK ก็ได้ แต่ในทางปฏิบัติแล้วเราจะสร้าง PK จากหนึ่งฟิลด์หรือหลายฟิลด์รวมกันโดยที่ค่ารวมของมันจะต้องไม่ซ้ำกันเลย เช่น เลขบัตรประชาชนสำหรับเทเบิลบุคคล หรือใช้เลขที่บ้าน/อาคาร+เลขที่ห้อง+ซอย+ถนน+แขวง/ตำบล+เขต/อำเภอ+จังหวัดสำหรับเทเบิลบ้านอาคารที่อยู่
PK เป็น Index (ดัชนี) ประเภทหนึ่ง และเป็น Unique Index ด้วย (Index ที่ค่าจะไม่มีการซ้ำกันเลยในเทเบิลนั้นๆ) ระบบจัดการฐานข้อมูลจะมีการโยงว่าเรคอร์ดที่มีค่าดัชนีมากกว่า น้อยกว่า เท่ากัน นั้นอยู่ที่ไหน ดังนั้นประโยชน์ของ Index (ไม่ว่าจะ Unique หรือไม่) อีกอย่างก็คือทำให้ระบบสามารถค้นหาเรคอร์ดที่ต้องการได้อย่างรวดเร็วครับ ในทางทฤษฏีแล้ว การค้นหา 1 เรคอร์ดจาก 1 ล้านเรคอร์ดด้วย Unique Index ระบบจะพบเรคอร์ดที่ต้องการภายในการวนหาไม่เกิน 20 ครั้งเท่านั้น
PK เป็น Index (ดัชนี) ประเภทหนึ่ง และเป็น Unique Index ด้วย (Index ที่ค่าจะไม่มีการซ้ำกันเลยในเทเบิลนั้นๆ) ระบบจัดการฐานข้อมูลจะมีการโยงว่าเรคอร์ดที่มีค่าดัชนีมากกว่า น้อยกว่า เท่ากัน นั้นอยู่ที่ไหน ดังนั้นประโยชน์ของ Index (ไม่ว่าจะ Unique หรือไม่) อีกอย่างก็คือทำให้ระบบสามารถค้นหาเรคอร์ดที่ต้องการได้อย่างรวดเร็วครับ ในทางทฤษฏีแล้ว การค้นหา 1 เรคอร์ดจาก 1 ล้านเรคอร์ดด้วย Unique Index ระบบจะพบเรคอร์ดที่ต้องการภายในการวนหาไม่เกิน 20 ครั้งเท่านั้น
โพสต์นี้ได้รับคำขอบคุณจาก: ปิ่นณรงค์