Geliştiriciye, bu güncellemeleri önlemek için uygulama koduna bu tür bir mantık ekleyebileceklerini söyleyin. Ama aynı zamanda bunu kaldırmayacaksın DENY
. Eğer / ne zaman gün gelirseolmayabilirBüyük olasılıkla, birisinin bu sütunlardan birini güncellemeye çalışırken bir hata alması durumunda), o zaman DENY
birisinin neden bu değeri güncellemesi gerektiğine ilişkin gerçek, sağlam bir gerekçeye gerek duyacağınız şeyleri kaldırıp kaldırmayacağınıza dair bir tartışma yapabilirsiniz . ilk yer.
Olma noktası: insanların zamanlarını harcadıkları şeyleri yönlendiren gerçek bir iş vakası olmalı. Zaman yoğun talep görüyor, ancak arz yetersiz, yani siz (ve diğer herkes) birinin fikrine dayanarak sistemi değiştirmekten daha önemli şeyler yapacaksınız. Her zaman çeşitli görüşler olacaktır (boşluklar, sekmeler, herkes?) Ve eğer bu geliştirici ayrılırsa ve bunun yerine güncellenebilir alanlara şiddetle itiraz eden biri tarafından değiştirilirse, yıllarca bunu ileri geri değiştirerek geçirebilirsiniz. Eğer hiçbir müşteri bunu istemiyorsa (veya bunu gerektiren bir şeyi yapmıyorsa) ve maddi bir faydası yok (yatırım getirisini göstermesi zor olan, ancak teknik borç temizliği gibi gecikmiş bir fayda bile var. Uzun vadede fiili maliyet tasarrufuna yol açmayan harcadığı zamanın hiçbiri zayıf değildir), o zaman ya talebi kapatın ya da idealizmin değişmesi gerektiğini söylediği durumlarda bile bu talebi düşük bir öncelik sırasına koyun (bu durumlardan biri değil, öyle olduğunu düşünenler için belirtilir). İdealizm konuşmalar için harikadır, ancak şirketler idealleri olan kira, kamu hizmetleri, çalışanlar, vergiler vb.
@ jpmc26, iletişim ihtiyacı konusunda doğru, ancak nelerin iletilmesi gerektiği konusunda tam olarak doğru değil. Evet, başkalarının ne istediğini dinlemeli ve bir şey hakkında net değilseniz, soru sormayı da içeren sebeplerini anlamalısınız.
Bununla birlikte, veritabanı uygulamaya bağlı değildir ve veritabanı uzmanları (yöneticiler, mühendisler, şirketinizin kullandığı ad ne olursa olsun) geliştiricilere (bu cevapta belirtildiği gibi) tabi değildir. Geliştiriciler için çalışmazsınız, şirket için çalışırsınız, aynı işler. Bu bir takım çalışmasıdır ve işinizi yaptığınız için affetmemelisiniz. Bununla birlikte, biz bilgisayar türlerini insan genelinden iletişim becerilerimizle (genellikle) bilmediğimiz, bu nedenle, başkalarının sizi anladığından , gerekçenizin ne olduğunu, sorumluluklarınızın neler olduğunu ve bu işlerin gerçekte nasıl çalıştığını bildiğinizden emin olmanız gerekir. .
Bu son kısmı koydum, çünkü yüksek derecede yanlış anlama, yanlış bilgilendirme ve bilgi eksikliği var (hatta tam bu sayfada bile). Mesela, tüm kuralların işletme kuralları olduğu kanısında. Veri kuralları ile iş kuralları arasında bir ayrım olduğunu açıklamamız gerekir (@Aaron buna bir yorumda "iş akışı kısıtı - veri kısıtı" olarak atıfta bulunulan) ve bazı verilerin doğal olarak uygulamaya ait olmasına rağmen, bazı verilerin aslında veri modeline aittir. Nasıl uygulama verileri geliştiriciler için DBA dikte Should olacak sınırlanabilir? Tabii ki değil. Uygulama verilerinin nasıl yapılabileceğini sunmak bizim işimizkısıtlanmak. Uygulama verileriyle ilgili bir iş kuralının ihlali zarar verebilecekse ve uygulama verileri yönetmenin % 100 tek yolu değilse, belki de bir kontrol kısıtlaması gerçekten yardımcı olabilir (ve bunların değiştirilmesi veya kaldırılması zor değildir) ).
Ancak, diğer yönden gelen geliştiriciler, veri modeli verilerinin (yani meta veriler) nasıl işlendiğini belirlememelidir. Bu, denetim alanlarını ( created_on
/ created_by
sütunları gibi) ve PK / FK sütunları (bu değerlerin yalnızca dahili olarak bilinmesi ve müşterilere verilmemesi gerekir) içerir. Bu veriler, uygulamanın müşterilerle ilgili sakladığı şey değildir (uygulama değerleri görebilse ve hatta kimlikleriyle kullansa bile), veri modelinin uygulamanın verileriyle ilgili sakladığı şeydir.
Dolayısıyla veri modeli verilerini korumak için veri kurallarını kullanmak mantıklıdır. Bunu yapmak, uygulama verilerine kısıtlamalar veya kısıtlamalar eklemeye başlamak üzere olduğunuz anlamına gelmez. Ancak, bu ayrım anlaşılmıyorsa, sohbeti gerçekten verimli bir şekilde ilerletmek zor olacaktır.