Veritabanında id kimlik numarası gibi düşünülebilir, haliyle benzersiz olmalıdır auto increment olabiliyor olması büyük kolaylık. Tablolarda hemen hemen hepsinde id kullanılmasının bir diğer nedeni de daha sonra diğer tablolarla iliskilendirilmesidir. Örneğin bir bloglar tablosunun ilgili yorumlar tablosuyla eslestirken id lerden faydalanılması. Bu sebeple silinen id leri tekrar kullanmak yaptığın iliskilendirmelerden dolayı karmaşa yaratacaktır. Aynı şekilde hali hazırda bulunan verilere seri bir id atamak, iliskili tabloların seknkronizasyonun kopması demek. Yinede son kullaniciya projeni teslim ederken eğer veritabanin tamamen boş ise, id leri 1 den başlatmak isteyebilirsin.
ALTER TABLE tablename AUTO_INCREMENT = 1
Güvenlik amaçlı idleri sifrelemek istiyorsanda bunu veritabanında yine orjinalini koruyarak yapmalisin.
Örneğin şu yapıda;
siteadi.com?sil=1
yerine 1'in kriptolu karşılığı sukrutt68yree4Dgjjk olsun.
siteadi.com?sil=sukrutt68yree4Dgjjk
gibi kullanmak mantıklı gelebilir. Siradaki id tahmin edilemez bu şekilde. Bunu da geri döndürülebilir şifreleme yöntemleriyle yapabilirsin.
Veri tabanında önemli verilerini kriptolu tutabilirsin örneğin Tc, email, şifre, adres, kredi kartı bilgisi gibi ama kimse id, ad soyad gibi bilgileri kriptolu tutmaz yapılamadığı için veya zor olduğundan değil. Kriptolu tuttuğun zaman verinin boyutu büyür. Fazla yer kaplar. Çağrıldığında hızına etki eder vs. Veritabanı optimizasyonu, ilişkilendirme gibi durumları araştırdığında neden böyle olduğunu daha iyi anlarsın.
İd sifrelemektense yazılım içinde önlemler almalısın mesela silme işlemi için ilk akla gelenler
Bu işlemi sadece login olmuş kisiler yapsın
Bu kisinin buna yetkisi varsa yapsın
Referrer olarak sadece benim sitem üzerinden istek gönderiyorsa yapsın
Post veya get ettigi veriler filtremden başarıyla geçtiyse yapsın.
Cors uyarısı almazsa yapsın
2FA dogrulamani gectiyse yapsın
......
...
Bu çoğaltılabilir uzar gider. Yaptığın işe göre önlemler de değişkenlik gösterebilir. İşin bu tarafına yoğunlaşırsan id nin görünmesi problem bile olmayabilir.