Ben bir modüler bir tasarıma sahip bir PHP MySQL uygulaması var. Orada yaklaşık 5 modülleri artık toplam, ve ben gerçekten 10'dan fazla olması orada hiç görmüyorum.
"Kullanıcı ve Yönetici" - Şu anda kullanıcıların 2 tür var. Bu kullanıcı türleri yöneticileri dışında aynı perma normal kullanıcılar olamaz ise, kullanıcıları düzenleyebilirsiniz var.
Ben bir Yönetici iseniz TÜM modülleri değişiklik yapmak için gerekli izinlere sahip şekilde modüler permssions, uygulamak istiyor. Eğer normal bir kullanıcı iseniz, kullanıcı (yani onay işaretleri bir dizi) erişimi olduğunu hangi modüllerin ayarlamak için bir yol olacaktır.
Benim soru, veritabanında bu depolamak için en iyi yolu nedir nedir? Ben zaten bir Kullanıcılar tablo var. Orada bunu yapmak için önerilen bir yoldur ya da ben doğru kafamın üst kapalı aşağıdaki 3 çözümleri ile geldim, ben merak ediyorum başka yollar varsa. Ben de yeni sürüme uygulamayı yükseltirken, ben şu anda DB tüm kullanıcılar için perma kurmak zorunda olduğunu akılda tutmak gerekir. Ben de yeni bir modül entegre edildiğinde kolaylıkla her kullanıcı için bir varsayılan perma eklemek mümkün olmalıdır. Ben birkaç modül ekleme korumak ve uygulanması kolay, ancak esnek bir şey arıyorum.
Benim şimdiye kadar seçenekleri beyin fırtınası:
- Dizenin bir bit maskesi türüne sahip bir sütun Kullanıcılar tablo perma Mağaza: 10001 onlar "Modül A" için izinleri ve "Modül E" sadece var olduğunu gösterir.
- "ModuleA, ModuleE": kullanıcı için perma sahip modül isimlerinin bir sınırlandırılmış (virgül veya boru) listesi ile bir sütunda Kullanıcılar tabloda saklayın perma.
- Böylece gibi kullanıcı Perma için ayrı bir tablo oluşturun:
UserId | Module | Permission 1 | A | 1 1 | B | 0
Sen ne düşünüyorsun?