Bu duruma, "Duruma bağlı olarak" kaynayan pek çok iyi cevap var ve bunlara hiçbir şey ekleyemiyorum.
Bununla birlikte, belirtilmemesi gerektiğini düşündüğüm bir şey, bir dizilim ya da bir AUTO_INCREMENT sistemi tarafından üretilen birincil anahtarları asla tekrar kullanmamanız gerektiğidir.
Böyle bir sistem tarafından birincil anahtar atanmış bir öğeyi sildiğinizde, birincil anahtar sütununda silinen verilerden kalan boşluklar olur. Bu boşlukları, eklendiklerinde yeni öğelere yeniden atamak, hatta daha da kötüsü, boşlukları kaldırmak için yeni bir kimlik vermek üzere mevcut verileri karıştırmak, ancak bunu yapmak sizin ortaya çıkacak sorunlara yol açacaktır. anahtarları sadece yalnız bıraktıysanız asla uğraşmak zorunda kalmazsınız.
Yeniden sipariş edilen sarf malzemelerini yönetmek için bir yazıcı veritabanını sakladığınızı varsayalım. Eski bir lazer yazıcı olan Yazıcı 13, ekonomik onarımın ötesine geçer, böylece siz onu atarsınız. Bu arada, ilgisiz bir nedenden dolayı, birisi depoda barkod yazdırma yapmak için yeni bir termal yazıcı sipariş eder ve bu yazıcı, yazıcı 13'ün değiştirilmesinden önce gelir. Yönetici bu yeni yazıcıyı veritabanına kaydeder ve çünkü 13 artık ücretsizdir. ve kimlikleri geri dönüştürüyorsunuz, yeni termal yazıcı 13'ü kimliği olarak tahsis ediyor.
Şimdi birileri size yazıcı 13'ün neredeyse tükendiğini söylüyor. Yazıcının 13 bir lazer yazıcı olduğunu hatırlıyorsunuz, bu yüzden veritabanına bakmaktan rahatsız olmuyorsunuz ve bir toner kartuşu siparişi veriyorsunuz. Yazıcı 13 artık lazer yazıcı olmadığından yalnızca termal mürekkep paketi sipariş etmeniz gerekiyordu. Toner kartuşu geldiğinde kullanamazsınız çünkü bu yazıcı için yanlış mürekkep doldurmasıdır, daha fazla barkod yazdıramazsınız ve gönderilmeyi bekleyen herhangi bir sipariş gönderemezsiniz.
Daha da kötüsü, yazıcıyı 13 silip boşluğu doldurmak için peşinden gelen tüm yazıcıları karıştırırsanız ne olur? Yazıcı 14 (bazı eskimiş eski nokta vuruşlu) yazıcı 13, yazıcı 15 ise yazıcı 14 ve benzeri hale gelir.
Tüm yazıcıların üzerinde etiketler vardır, böylece veritabanına çapraz referans verilebilirler, ancak şimdi tüm etiketler eskidir. İlerlemeniz gerekecek, işletmedeki her yazıcıyı bulmanız (ki bunlar yüzlerce olabilir!) Ve yeniden etiketlemeniz gerekir. Bu, zamanın etkili bir şekilde kullanılması anlamına gelmez. Ve aynı zamanda hataya açık bir işlemdir ve hiç yapılmazsa ne olur? Birisi 14 yazıcısının bozulduğunu ve acilen düzeltilmesi gerektiğini söylesin diye ararsınız, bu nedenle bakarsınız ve 14 yazıcısının Resepsiyonda inkjet yazıcı olduğunu görürsünüz. Sadece kimlikleri karıştırdığınız için, aslında acilen düzeltilmesi gereken nokta vuruşlu yazıcı. Sorunu çağıran adam takılmaya bırakılırken, resepsiyonist, kırılmayan bir yazıcıyı tamir etmek için hiç aramadığı bir teknik destek görevlisine sahiptir.
Bir otomatik artış sistemi tarafından kalıcı olarak atanan kimlikleri kalıcı olarak düşünmelisiniz, değişmezler ve kimliğin ifade ettiği şey sona ererse bile tekrar kullanılamazlar. Bazı insanlar, kimlikleri tükenmek konusunda endişelenmek istemediklerini iddia ediyor, ancak 32 bit sistemlerde ve imzalı kimliklerde bile 2 milyar kadar kimlik var. Kimlik sütununu imzasız hale getirebilirseniz, bu işlem 4 milyar olur ve 64 bit sistemlerde kullanılabilir kimlikler adeta gökyüzündeki yıldız sayısından daha fazladır. Kimlikleriniz tükenmeyecek.