ฉันมีปัญหาในการหาวิธีวางขอบเขตที่ดีสำหรับเวลาและสถานที่ที่จะใช้ตารางการค้นหาในฐานข้อมูล แหล่งข้อมูลส่วนใหญ่ที่ฉันดูแล้วบอกว่าฉันไม่สามารถมีได้มากเกินไป แต่ในบางจุดดูเหมือนว่าฐานข้อมูลจะถูกแบ่งออกเป็นหลาย ๆ ส่วนในขณะที่อาจมีประสิทธิภาพ แต่ก็ไม่สามารถจัดการได้อีกต่อไป นี่คือตัวอย่างของสิ่งที่ฉันทำงานด้วย:
สมมติว่าฉันมีตารางชื่อพนักงาน:
ID LName FName Gender Position
1 Doe John Male Manager
2 Doe Jane Female Sales
3 Smith John Male Sales
ทำท่าครู่หนึ่งว่าข้อมูลมีความซับซ้อนมากขึ้นและมีหลายร้อยแถว สิ่งที่ชัดเจนที่สุดที่ฉันเห็นว่าสามารถย้ายไปที่ตารางการค้นหาจะเป็นตำแหน่ง ฉันสามารถสร้างตารางที่เรียกว่าตำแหน่งและติดกุญแจต่างประเทศจากตารางตำแหน่งลงในตารางพนักงานในคอลัมน์ตำแหน่ง
ID Position
1 Manager
2 Sales
แต่ฉันจะแยกข้อมูลออกเป็นตารางการค้นหาขนาดเล็กลงต่อไปได้อีกนานเท่าใดจึงจะไม่สามารถจัดการได้ ฉันสามารถสร้างตารางเพศและมี 1 สอดคล้องกับเพศชายและ 2 สอดคล้องกับเพศหญิงในตารางการค้นหาแยกต่างหาก ฉันสามารถใส่ LNames และ FNames ลงในตารางได้ รายการ "John" ทั้งหมดจะถูกแทนที่ด้วย foreign key 1 ที่ชี้ไปที่ตาราง FName ที่ระบุว่า ID 1 สอดคล้องกับ John หากคุณลงไปในช่องกระต่ายนี้มากเกินไปเช่นนี้ตารางพนักงานของคุณจะถูกลดขนาดไปเป็นระเบียบต่างประเทศ:
ID LName FName Gender Position
1 1 1 1 1
2 1 2 2 2
3 2 1 1 2
ในขณะนี้อาจจะมีหรือไม่มีประสิทธิภาพมากขึ้นสำหรับเซิร์ฟเวอร์ที่จะประมวลผล แต่ก็ไม่สามารถอ่านได้กับบุคคลทั่วไปที่อาจพยายามรักษาและทำให้ยากขึ้นสำหรับนักพัฒนาแอปพลิเคชันที่พยายามเข้าถึง ดังนั้นคำถามจริงของฉันคือไกลแค่ไหนไกลเกินไป? มี "แนวปฏิบัติที่ดีที่สุด" สำหรับสิ่งนี้หรือเป็นแนวทางที่ดีที่ไหนสักแห่ง? ฉันไม่สามารถหาข้อมูลออนไลน์ที่ตอกย้ำแนวทางที่ดีและเป็นประโยชน์สำหรับปัญหานี้โดยเฉพาะที่ฉันมี การออกแบบฐานข้อมูลเป็นเรื่องเก่าสำหรับฉัน แต่การออกแบบฐานข้อมูลที่ดีนั้นใหม่มากดังนั้นคำตอบทางเทคนิคที่มากเกินไปอาจอยู่เหนือหัวฉัน ความช่วยเหลือใด ๆ ที่จะได้รับการชื่นชม!