ฉันมีตารางที่มีคีย์หลักคอมโพสิต (ประกอบด้วย 4 คอลัมน์) ซึ่งใช้เพื่อให้แน่ใจว่าไม่มีรายการที่ซ้ำกันถูกป้อนลงในตาราง ตอนนี้ฉันต้องการโต๊ะใหม่ซึ่งจะต้องอ้างอิงคีย์ในตารางนี้เป็นคีย์ต่างประเทศ
คำถามของฉันคือวิธีใดที่มีประสิทธิภาพมากกว่าสำหรับความเร็วการค้นหา:
1) ฉันจะสร้างตารางใหม่รวมทั้งคอลัมน์ทั้ง 4 และอ้างอิงพวกเขาทั้งหมดในคีย์ต่างประเทศ
หรือ
2) ฉันจะสร้างคอลัมน์ข้อมูลประจำตัวใหม่ในตารางคีย์หลักและใช้เป็นคีย์ต่างประเทศในตารางใหม่หรือไม่
ฐานข้อมูลนี้คาดว่าจะเก็บข้อมูลจำนวนมากดังนั้นฉันได้สร้างมันขึ้นมาจนถึงตอนนี้ด้วยมุมมองที่จะลดจำนวนข้อมูลที่เก็บไว้ในแต่ละตาราง ด้วยสิ่งนี้ในใจตัวเลือก 2 จะเป็นวิธีที่ดีที่สุดเนื่องจากฉันจะบันทึก 2 คอลัมน์และคอลัมน์วันที่สำหรับทุกแถว แต่ฉันต้องการหลีกเลี่ยงการเพิ่มเวลาการค้นหาหากไม่จำเป็น
INT IDENTITY
) ในกรณีดังกล่าว - ทำให้การอ้างอิงและเข้าร่วมตารางนั้นง่ายขึ้นมาก หากต้องการหลีกเลี่ยงการซ้ำให้วางข้อ จำกัดUNIQUEไว้ในคอลัมน์ทั้งสี่ นอกจากนี้: คีย์หลักแคบเป็นที่ดีมากสำหรับเหตุผลประสิทธิภาพ (ถ้าพวกเขากำลังใช้เป็นกุญแจสำคัญในการจัดกลุ่ม)