Zajmuję się tworzeniem aplikacji dla naszej firmy, która ostatecznie będzie miała wiele sposobów ograniczania użytkowników do poszczególnych sekcji/modułów. Mimo że aplikacja jest wciąż niewielka, chciałbym przejść do nowej metody przechowywania uprawnień, która w miarę wzrostu aplikacji pozostanie łatwa do utrzymania i zapytania.Przechowywanie pozwoleń na aplikacje w bazie danych
Obecnie w naszej bazie danych MySQL znajduje się tabela o nazwie "użytkownik", która przechowuje identyfikator użytkownika, nazwę użytkownika i hasło. W osobnej tabeli o nazwie „user_acl” jest następujący:
user_acl_id
acl_root
acl_news_read
acl_news_write
acl_news_modify
acl_reports_read
acl_reports_write
acl_reports_modify
acl_users_read
acl_users_write
acl_users_modify
Mamy tylko 3 moduły w tej chwili, ale z biegiem czasu bardziej zostanie utworzona i uprawnienia dla każdego będą musiały być dodane.
Zamiast tworzyć kolumny dla każdego pozwolenia, czy istnieje inny sposób przechowywania tych informacji?
Jak dodać dodatkowe informacje o roli, takie jak admin public etc? na przykład administrator ma coś więcej do dodania jak nazwa firmy .. a użytkownik nie ma tego pola? – james
Chciałbym przechowywać informacje w pokrewnym obiekcie, możesz dodać dodatkowe kolumny do tabeli, jeśli chcesz dodać więcej informacji do roli, możesz dodać dodatkową kolumnę w tabeli ról, to samo dotyczy tabeli użytkowników –
, jeśli mam tabelę użytkowników z polami nazwa użytkownika i hasło., które jest ogólne dla wszystkich użytkowników. i mam tabelę członków z dodatkowym polem, takim jak nazwa firmy, adres itp. Również mam administratora z kilkoma dodatkowymi informacjami. Czy muszę używać relacji supertype/subtype dla użytkownika z adminem memebers? – james