2010-06-28 15 views
9

Herkesin bir günlüğüne imzalanmış vs imzasız anahtar değerlerle ilgili olarak ne yaptığına dair birkaç konu gördüm. İmzasız olanın, aynı maliyete ait satır sayısının iki katına izin verdiğinden, optimal olduğu görülecektir. İmzalı anahtarlarla herhangi bir fayda var mı?Konsensüs? MySQL, İmzalı VS İmzasız Birincil/Yabancı Tuşlar

herhangi bir standart konsensüs var mı? imzalı Onların negatif olamaz eğer unsigned olarak Sütunlarımı ayarlamayı tercih

cevap

8

"bu her zaman böyle olmuştur" beri cevaptır gibi Onun görünüyor. Bahsettiğiniz aralık faktörünün yanı sıra, tablo tanımını okurken daha net hale getirir.

-2

A Sorunun çoğu insan için tartışmaya açıktır şüpheli yüzden 32 bit int 2 milyar sayılarını temsil edebilir imzaladı. Bu, bir rekorun bilerek yetim olduğunu göstermek istediğimde sıklıkla negatif rakamlar kullandım dedi.

+2

GAHH! Üzgünüz, birisinin (artık şirkette değil) bunun iyi bir fikir olacağını düşündüğü bir uygulama ile çalışıyorum. Kısacası, haftada en az bir kez, bu çılgın tasarım kararının neden olduğu bir çeşit sorun (ya yeni kodla ya da mevcut kodda hatayla karşılaşırız) buluruz. ** Anahtar değerlerin kendisinin ötesinde bir anlam ifade etmemelisiniz ve asla birincil anahtar değerlerini değiştirmemelisiniz **. Yumuşak silme işlemini belirtmek isterseniz, bir durum sütununa veya softDeleted bir sütuna sahip olun. Yazılımın temel bir parçası olduğu için, sadece yeni bir yeniden yazmanın parçası olarak şimdi onu düzeltiyoruz. – gregmac

+0

@gregmac s'ok, tartışmalı olacağını biliyordum. İronik olarak, “yetim” in “varoluşçu” olacağı daha iyi bir sözcük. Sadece var olduğumu bildiğim insanları temsil etmek için şema ile geldiğimden beri ironik bir terim tercihiydi. Uygulamam, bir kullanıcının Bob ve Charlie'nin kardeş olduklarını ancak içeride depolandığını, ebeveynlerinin sütunlarının her ikisini de negatif anahtarlarla birlikte başvurulan kayıtlara sahip olduklarını söylemesine izin veriyor. Birisi Jane'i Bob'un annesi olarak eklediyse, Charlie'yi de güncelleyebilirim. Genelde, diğer şeylerin yakın olması gereken bir şey olduğunu söylemek istediğimde deseni kullanırım. –

+2

Ayrıca, birincil anahtarların anlam içermemesi gereken doktrine çok aşinayım. Daha iyi bir sonuç, anlamın kapsüllenmesi gerektiğidir. PK'lar uygulama katmanına bir şey ifade etmemeli, ancak veritabanına (yönetim sistemi) bir şey ifade etmelidir. Yukarıda anlattığım şemada sadece PK'ları meta veri olarak kullanıyorum. Bu arada, daha önce bunu konuşmuştum: http://stackoverflow.com/questions/2023988/modeling-existential-facts-in-a-relational-database –

İlgili konular