Eğitimimde, gerçek birincil anahtarları (yalnızca DB anahtarları değil, tüm birincil erişimciler) kullanıcıya göstermenin hatalı bir fikir olduğu söylendi.
Her zaman bunun bir güvenlik sorunu olduğunu düşünürdüm (çünkü bir saldırgan, kendine ait olmayan şeyleri okumaya çalışabilirdi).
Şimdi, kullanıcının yine de erişmesine izin verilip verilmediğini kontrol etmeliyim, bu yüzden arkasında farklı bir neden var mı?
Ayrıca, kullanıcılarımın yine de verilere erişmesi gerektiğinden, arada bir yerde dış dünya için ortak bir anahtara ihtiyacım olacak. Şimdi bu açık anahtar birincil anahtarla aynı problemlere sahip, değil mi?
Yine de bunu neden yaptığımıza dair bir örnek talep edildi, işte bir tane. Sorunun, sadece bu örnekte geçerliyse değil, prensibin kendisiyle ilgili olduğunu unutmayın. Diğer durumları ele alan cevaplar açıkça kabul edilir.
Faaliyeti yürüten Uygulama (Web, Mobil), sistemler arası iletişim için birden fazla kullanıcı arayüzüne ve en az bir otomatik API'ye sahiptir (eG muhasebe departmanı müşterinin ne yapıldığına bağlı olarak ne kadar ücretlendireceğini bilmek ister). Uygulama birden fazla müşteriye sahiptir, bu yüzden verilerinin ayrılması (mantıksal olarak, aynı DB'de depolanan veriler) sistemin sahip olması gereken bir husustur. Her talep ne olursa olsun geçerlilik için kontrol edilecektir.
Etkinlik çok ince tanelidir, bu nedenle bazı kap nesnelerinde biraradadır, “Görev” olarak adlandırır.
Üç kullanım:
- A kullanıcısı B görevini bazı görevlere göndermek istiyor, bu yüzden orada bazı etkinlikler yapması için ona bir link (HTTP) gönderdi.
- B kullanıcısı binanın dışına çıkmak zorundadır, bu yüzden Görevi mobil cihazında açar.
- Muhasebe, müşteriyi Görev için ücretlendirmek ister, ancak Görevi / Etkinliği, Uygulamanın REST - API'sine atıfta bulunan bir kodla otomatik olarak yükleyen üçüncü taraf bir muhasebe sistemi kullanır
Her kullanım alanı, aracının Görev ve Etkinlik için adreslenebilir bir tanımlayıcıya sahip olmasını gerektirir (veya daha kolay hale gelir).
ON UPDATE CASCADE
bunun için yapıldı ( mysql'ye özgü?), sorun güvenlik olsa da, erişim kontrolü arka uçta olmalı ve yine de kullanıcıya güvenmemelidir