Bazı yorumlar zaten söylediği gibi, bir çözüm yeni bir birincil anahtar kullanmaktır.
Örneğin (@oneday örneğini izleyerek) diyelim ki , bir kitap listesi depolayan Kitaplar tablosunun var olduğunu ve ISBN'yi birincil anahtar olarak belirlemek için "kullandık" diyelim . Bununla birlikte, bazı yazarlar yanlış bir ISBN yazarak hata yaptılar, bu yüzden de ISBN’yi değiştirmek istediler, bir sonraki görevleri içeriyorlardı:
- Kitaplar tablosunda yeni bir kayıt defteri oluşturmak
- eski ISBN’den yeni ISBN’ye tüm referansları gösterin. (*)
- Ve son olarak, eski kayıt defterini Kitaplar tablosundan silin.
(*) Yabancı Anahtarları kullanan ancak bazı modellerde bulunmayan bir veritabanı modeli için tüm referansları bulmak önemsiz olabilir.
Table Books
ISBN is the primary key
NAME is a simple field.
etc.
Olarak değiştiririz
Table Books
InternalBookId as the primary key
ISBN as a simple field or an indexed field.
NAME is a simple field.
etc.
Yeni InternalBookId'nin otonum bir değer bile olduğu yerde.
Bu konuda eksileri:
daha fazla alan / kaynak kullanan yeni bir alan ekler.
tüm modelin tekrar yazılmasını gerektirebilir.
Yeni model daha az kendi kendine açıklanabilirdi.
Profesyonel
- "Birincil anahtarı" değiştirmeyi sağlar.
- "Birincil anahtarı" örneğin düşürmek veya yeniden düzenlemek, örneğin Kitapları ISBN-13 olarak değiştirmek, eski sütunu bırakmak ve yeni bir tane oluşturmak için basittir.
Yeni masa:
Table Books
InternalBookId as the primary key
ISBN13 is a new field.
NAME is a simple field.
etc.