Birincil anahtarın tümü, bir kayıtta son derece önemli olan değer olduğunu belirlediğimiz bir değerdir. Bu anahtar imzalı bir int, imzasız bir int, bir dize, bir damla (aslında sınırlar vardır) veya bir UUID (veya bugün aldığı herhangi bir ad) olsun, gerçek hala bir anahtar olduğunu ve çok önemli bir şey.
Anahtarlarımız için yalnızca pozitif odaklı sayılar kullanmakla sınırlı olmadığımız için, imzalı bir int'in sadece ~ 2 milyar, imzasız bir int'in ise ~ 4 milyar olacağını düşünmek mantıklıdır. Ancak, imzalı bir int kullanmanın, başlangıç değerini ~ -2 milyar olarak ayarlamanın ve bir artış artırmanın yanlış bir yanı yok. ~ 2 milyar kayıttan sonra "sıfır" a basacaksınız ve sonra ~ 2 milyar'a devam edeceksiniz.
Bir tabloda "negatif anahtarların" olmasının neden yararlı olacağına gelince, bu, "bir tabloda anahtarların bulunması neden yararlıdır" sorusuyla aynı sorudur. Bir anahtarın "değerinin" anahtar olarak durumu üzerinde hiçbir etkisi yoktur. Anahtar anahtardır anahtardır.
Önemli olan anahtarın geçerli olup olmadığıdır.
Negatif anahtarlara izin vermenin neden yararlı olduğuna gelince, bazı nedenler önerebilirim:
Bir satış sistemindeki getirileri, pozitif müşteri siparişi numarasıyla eşleşen negatif satış siparişi sayıları olarak belirtmek isteseniz, korelasyonu kolaylaştırır (bu naif ve kötü tasarlanmış, ancak "elektronik tablo" anlamında çalışır).
Bir kullanıcı tablosuna sahip olmak ve negatif sayıya sahip olanların sistem kontrollü olduğunu belirtmek isterseniz (SO, sohbet yayını kullanıcıları için bunu çok yapar).
Devam edebilirdim, ama gerçekten negatif sayının öneminin tek nedeni, siz veya ben buna önem vermenizdir. Bunun yanı sıra, bir anahtarın değerinin anahtar üzerinde herhangi bir etkisi olması için büyük bir neden yoktur.