ในขณะที่ความคิดเห็นบางส่วนได้กล่าวไปแล้ววิธีการหนึ่งคือใช้คีย์หลักใหม่
ตัวอย่างเช่น (ตามตัวอย่างของ @onedaywhen) สมมติว่ามีตารางหนังสือที่เก็บรายชื่อหนังสือและเรา "ใช้" เพื่อพิจารณาว่า ISBN เป็นคีย์หลัก อย่างไรก็ตามผู้เขียนบางคนกระทำความผิดพลาดในการพิมพ์ ISBN ผิดดังนั้นพวกเขาจึงขอเปลี่ยน ISBN มันเกี่ยวข้องกับงานต่อไป:
- สร้างรีจิสทรีใหม่ในตาราง Books
- ชี้การอ้างอิงทั้งหมดจาก ISBN เก่าไปยัง ISBN ใหม่ (*)
- และในที่สุดลบรีจิสตรีเก่าออกจาก Table Books
(*) นี่อาจเป็นเรื่องที่ไม่สำคัญที่จะค้นหาการอ้างอิงทั้งหมดสำหรับโมเดลฐานข้อมูลที่ใช้ Foreign Keys แต่บางรุ่นขาดไป
Table Books
ISBN is the primary key
NAME is a simple field.
etc.
เราเปลี่ยนเป็น
Table Books
InternalBookId as the primary key
ISBN as a simple field or an indexed field.
NAME is a simple field.
etc.
ที่InternalBookIdใหม่อาจเป็นค่าตัวเลขได้ด้วยตนเอง
ข้อเสียเกี่ยวกับมัน
มันเพิ่มเขตข้อมูลใหม่ที่ใช้พื้นที่ / ทรัพยากรเพิ่มเติม
มันอาจต้องมีการเขียนทั้งโมเดลใหม่
รุ่นใหม่อาจอธิบายตนเองน้อยลง
มืออาชีพ
- ช่วยให้การกลายพันธุ์ "คีย์หลัก"
- อนุญาตให้วางหรือปรับโครงสร้างใหม่ "คีย์หลัก" ตัวอย่างเช่นการเปลี่ยนหนังสือเป็น ISBN-13 นั้นง่ายมาก ๆ เพียงแค่วางคอลัมน์ที่เก่ากว่าและสร้างใหม่
ตารางใหม่:
Table Books
InternalBookId as the primary key
ISBN13 is a new field.
NAME is a simple field.
etc.