Wpis z mikrobloga

Cześć,
Jako, że nie jestem #programista15k, w ramach ćwiczeń i samodoskonalenia wymyśliłem sobie, że zbuduję aplikację do obsługi magazynu. Problem na jaki trafiłem to sposób zapisu uprawnień użytkowników w bazie (MS SQL).
Dla uproszczenia, posiadam tabelę user (id, name), permission (id, rolename) i tabelę userpermission (id, userid, permissionid). Jakie typy danych wybrać, aby zapisywać odpowiednie uprawnienia?
Powiedzmy, że chciałbym na początek 3 role, odczyt, odczyt/zapis oraz administrator, którym będę zarządzał użytkownikami.
Jak się za to zabrać?

#bazydanych #programowanie
  • 6
  • Odpowiedz
  • Otrzymuj powiadomienia
    o nowych komentarzach

@PukierCud3r: Jeśli tworzysz system z aplikacja to potrzebujesz tak naprawdę 3 ról tylko:
- schema modification -> dla procesu migracji bazy danych
- write/read -> dla aplikacji
- read -> dla supportu
  • Odpowiedz
@wuju84: hm, czyli mogę zrobić kolumny odczyt, zapis itd, typu BIT i na podstawie tego generować odpowiednie widoki w aplikacji?
ma to sens czy w poważniejszych aplikacjach inaczej jest to rozwiązane?
  • Odpowiedz
@wuju84: ogólnie aplikację wykonam w ASP.NET Core MVC, stąd wyżej wspomniane widoki
same uprawnienia są dla mnie, żebym miał się czym pobawić
rozróżnić chciałbym 3 użytkowników - 1. osoba mogąca tylko sprawdzić stan magazynu, 2. osoba wprowadzająca towary, 3. admin, aby dodawać i usuwać użytkowników/towary

samo pytanie zadałem, ponieważ nie wiem jak rozwiązuje się takie problemy w produkcyjnych aplikacjach a wiadomo, że nie ma co się uczyć złych praktyk
  • Odpowiedz
@PukierCud3r: Nie rob wszystkiego w jednej tabelce bo to raczej nie jest dobra praktyka. Jak sie uczysz to zerknij w wolnej chwili czym jest normalizacja baz danych. Jak sobie rozbijesz to na kolumny to w pewnym momencie to sie przestanie skalowac. Nie wspominajac o tym, ze dodanie nowej roli bedzie wymagalo modyfikacji schematu bazy danych.

Przyklad ktory podales na poczatku jest w porzadku na start. Jezli chodzi o rolename to
  • Odpowiedz