ขณะที่เราออกแบบตารางนั้น จะมีอยู่ช่องหนึ่งที่ระบุว่า " ใส่ดัชนี "
แล้วก็มีตัวเลือกอยู่สามตัวดังนี้ค่ะ
No
Yes (Duplicates OK)
Yes (No Duplicates)
หนูอยากทราบว่า เจ้าตัวเลือกทั้งสามนั้น มันมีความความหมายอย่างไรบ้าง
และเมื่อใดควรจะใช้ตัวเลือกไหน หากใช้ผิด แล้วจะเกิดผลเสียอย่างไรบ้างคะอาจารย์
เราสร้างดัชนี (index) เพื่อว่า เมื่อเราต้องการค้นหาเรคอร์ดด้วยฟิลด์นั้นจะทำให้การค้นหาทำได้เร็วที่สุด เช่นการค้นหาจากการกำหนด WHERE clause ใน SQL SELECT statement หรือจากการใช้ .SEEK method หรือ .FindFirst .FindLast method เป็นต้น เหตุเพราะค่าในฟิลด์ดัชนีจากเรคอร์ดต่างๆจะอยู่ในรูปแบบที่ถูกจัดเรียงข้อมูลตามลอจิคอล (logical) ไว้ให้แล้ว การค้นหาข้อมูลที่เรียงไว้แล้ว สามารถใช้อัลกอริธึมที่มีประสิทธิภาพในการค้นหาได้ ข้อมูลประมาณ 1 ล้านเรคอร์ดจะสามารถค้นหาเจอจากการค้นหาเพียงไม่เกิน 20 หรือ 21 ครั้งเท่านั้นเอง ... แต่ถ้าไ่ม่มีการทำดัชนี การค้นหาใดๆก็ต้องทำแบบ sequential search คือหาไปทีละเรคอร์ดจนกว่าจะพบ ถ้าเรคอร์ดที่เราต้องการเกิดไปอยู่ที่เรคอร์ดสุดท้ายพอดี ระบบก็ต้องควานอ่านไป 1 ล้านเรคอร์ดแหล่ะครับ
ดังนั้น
No ก็คือไม่ได้มีการสร้างดัชนีสำหรับฟิลด์นี้
Yes (No Duplicate) ก็คือมีการสร้างดัชนีไว้ และมีเพียงเรคอร์ดเดียวเท่านั้นที่จะมีค่านี้ได้
Yes (Duplicate OK) ก็คือมีการสร้างดัชนีไว้ และยอมให้มีค่าของฟิลด์ดัชนีนี้ ซ้ำกันมากกว่า 1 เรคอร์ดได้
แต่ถ้าต้องการสร้างดัชนีที่เป็นผลรวมของหลายๆฟิลด์เข้าด้วยกัน ก็ต้องไปเลือกใช้ Index Windows แทนนะครับ (เมนู View - Indexes)
หมายเหตุ : ฟิลด์ที่เป็น Primary Key จะถูกกำหนดเป็น No Duplicate Index ไปอย่างอัตโนมัติ แต่ในทางกลับกันไม่จำเป็น