Kullanıcı rolü atamaları depolamak için bit maskeleri kullanan bir uygulamayla çalışıyorum. Bu popodaki bir acı. Bu beni yanlı yaparsa, suçlandığı gibi suçlu.
Zaten ilişkisel bir veritabanı kullanıyorsanız, çoğu ilişkisel teoriyi ve tüm normalleştirme kurallarını ihlal eden bir anti-kalıptır. Kendi veri depolama alanınızı kurduğunuzda, bu kadar kötü bir fikir olmayabilir.
Çok fazla tablonun katıldığı bir şey var, ancak ilişkisel veritabanları bununla başa çıkmak için oluşturuluyor. Performansın sorun çıkarması durumunda birçoğunun ek özellikleri vardır: endeksler, indekslenmiş görünümler, vb. Baktığınız değerler çok sık değişmese bile, Bitmask için bir avantajdır, endekslemenin yönetilmesi gerekliliği veritabanında oldukça kolay.
Her ne kadar veritabanı veri toplamak için iyi bir iş çıkarsa da, karmaşık formüller veya Skaler Fonksiyonlar gibi şeyleri veri setlerine sokmaya başladığınızda halsizleşebilirler. Uygulamanızda bit yönünde yapabilirsiniz, ancak yaptığınız tek şey alakalı veriler elde etmekse (bir kullanıcının rollerine bakarken), veri depolamanızın en iyi şekilde yaptıklarından yararlanamazsınız.
Buna karşı son argümanım diğer geliştiriciler için basitlik olurdu. Kullanıcılarınız, rolleriniz ve ödevleriniz var. Çok yaygın bir ilişki seti (çünkü birden fazla ilişki var), bu kadar yaygındır, yönetimi kolay olmalıdır. Sadece CRUD meselesi.