
Yeni bir ilişkisel veritabanı yaratılırken Primary Key (Birincil Anahtar) türüne karar vermek durumunda kalırız. Genelde ilk veritabanı derslerinde Birincil Anahtarlar int türünde seçildiği için el alışkanlığı olarak int tercih edenler vardır. Peki kuracağımız sisteme göre bu kararı nasıl vermeliyiz?
GUID Nedir?
Açılımı Globally Unique Identifier olan, ve sizin üretmekte olduğunuz birincil anahtarın sadece sizin tablonuzda değil, veritabanınızda değil, tüm sistemler içerisinde tekil olmasını sağlayan bir yapıdır. İki GUID in aynı olma olasılığı yok sayılabilecek kadar düşüktür.
GUID avantajları?
Tabloları veya farklı veritabanlarını birleştirmek istediğinizde GUID'lerin aynı değeri almayacağını bilirsiniz ve bu yüzden veritabanı birleştirmeleri son derece kolay düzenlenebilir.
Örneğin bir Kullanıcı ID'sinin başka hangi tablolarda bulunduğunu araştırmak istediğinizde normalde tabloları elle araştırmak zorundasınız. Hatta çoğu zaman tabloların ilişkilerini de bilmek durumundasınız. Oysa GUID kullandığınızda ve bu GUID değerini bütün tablo alanlarında arayan basit bir Stored Procedure yazdığınızda her GUID değerinin hangi tablolarla ilişkisi olduğunu kısa yoldan ve çok daha kesin olarak görebilirsiniz.
GUID dezavantajları?
GUID test ve geliştirme sürecinde akılda kalıcı bir rakamlar yani int ile çalışmak daha kolay. Örneğin bir tester ya da yazılım geliştirici, kullanıcı ID'sinin 23 olmasını abuk subuk harflerden oluşan bir kelimeye tercih eder.
Bilindiği üzere int 4 byte ile temsil ediliyor. Oysa GUID 16 byte'tan oluşan bir yapı. Dolayısıyla performans ve veri alanı açısından int'e göre daha sorunlu.
Bilindiği üzere int 4 byte ile temsil ediliyor. Oysa GUID 16 byte'tan oluşan bir yapı. Dolayısıyla performans ve veri alanı açısından int'e göre daha sorunlu.
Ayrıca GUID içeren bir satırın tabloya eklenmesi, int içeren bir satırın eklenmesinden daha maliyetli. Dolayısıyla yer insertion için ek bir maliyeti de göze almalısınız.
Sonuç?
Sisteminiz küçük kendi halinde şirin bir sistem ise int kullanmaya devam edin. Kendinizi zorlamanın ve tablolarınızı şişirmenin pek de anlamı yok. Lakin eğer sisteminiz büyümeye başladı ve kontrolü zorlaştıysa, dağınık bir mimari içerisindeki çözüm geliştirilmeye çalışılıyorsa, biraz daha performans külfetiyle GUID kullanabilirsiniz.
Referanslar