เมื่อออกแบบตารางฉันได้พัฒนานิสัยการมีหนึ่งคอลัมน์ที่ไม่เหมือนใครและฉันสร้างคีย์หลัก สามารถทำได้สามวิธีขึ้นอยู่กับข้อกำหนด:
- คอลัมน์จำนวนเต็มข้อมูลประจำตัวที่เพิ่มขึ้นอัตโนมัติ
- ตัวระบุที่ไม่ซ้ำกัน (GUID)
- คอลัมน์อักขระสั้น (x) หรือจำนวนเต็ม (หรือชนิดตัวเลขอื่น ๆ ที่ค่อนข้างเล็ก) ที่สามารถใช้เป็นคอลัมน์ตัวระบุแถว
หมายเลข 3 จะใช้สำหรับการค้นหาที่ค่อนข้างเล็กส่วนใหญ่อ่านตารางที่อาจมีรหัสสตริงความยาวคงที่ที่ไม่ซ้ำกันหรือค่าตัวเลขเช่นปีหรือตัวเลขอื่น ๆ
ส่วนใหญ่ตารางอื่น ๆ ทั้งหมดจะมีเลขจำนวนเต็มเพิ่มอัตโนมัติหรือคีย์หลักของตัวระบุที่ไม่ซ้ำกัน
คำถาม :-)
ฉันเพิ่งเริ่มทำงานกับฐานข้อมูลที่ไม่มีตัวระบุแถวที่สอดคล้องกันและคีย์หลักได้รับการจัดกลุ่มในคอลัมน์ต่างๆ ตัวอย่างบางส่วน:
- datetime / ตัวอักษร
- datetime / จำนวนเต็ม
- datetime / varchar
- ถ่าน / nvarchar / nvarchar
มีกรณีที่ถูกต้องสำหรับเรื่องนี้? ฉันจะกำหนดคอลัมน์ข้อมูลประจำตัวหรือรหัสเฉพาะสำหรับกรณีเหล่านี้อยู่เสมอ
นอกจากนี้ยังมีหลายตารางที่ไม่มีคีย์หลักเลย อะไรคือเหตุผลที่ถูกต้องถ้ามีสำหรับสิ่งนี้?
ฉันพยายามที่จะเข้าใจว่าทำไมตารางถูกออกแบบมาเหมือนที่เคยเป็นมาและดูเหมือนว่าเป็นเรื่องใหญ่สำหรับฉัน แต่อาจมีเหตุผลที่ดีสำหรับมัน
คำถามที่สามที่จะช่วยฉันถอดรหัสคำตอบ: ในกรณีที่มีหลายคอลัมน์ที่ใช้ในการประกอบคีย์หลักแบบผสมจะมีความได้เปรียบเฉพาะกับวิธีนี้เทียบกับคีย์ตัวแทน / เทียมหรือไม่ ฉันคิดว่าส่วนใหญ่เกี่ยวกับประสิทธิภาพการบำรุงรักษาการบริหาร ฯลฯ ?