Panel użytkownika
Nazwa użytkownika:
Hasło:
Nie masz jeszcze konta?

[Bazy danych] Uprawnienia w dostępie do wybranej funkcjonalności.

Ostatnio zmodyfikowano 2013-01-22 00:12
Autor Wiadomość
akwes
Temat założony przez niniejszego użytkownika
[Bazy danych] Uprawnienia w dostępie do wybranej funkcjonalności.
» 2013-01-21 20:51:50
Witam ;)

Zacznijmy od:

Uproszczona tabela 1.

[id][Imię]
1 Ktosik
2 Cosik
3 Czarny Pan
4. Sonea
5. Nazgul

Uproszczona tabela 2.

[nazwa][value]
Panel1 xxx
Panel2 yyy
Panel3 zzz

I teraz chciałbym jakoś przechowywać uprawnienia osób z tabeli 1, do dostępu do każdego z paneli. Zastanawiam się w jaki sposób zrobić to mądrze. Na razie wymyśliłem dodatkową tabelę:

Uproszczona tabela 3.

[Imię][Panel1][Panel2][Panel3]
Ktosik true true true
Cosik false true false
Sonea true false false

Jednak tutaj w momencie zmiany ilości Paneli należałoby przerobić tabelę. Zastanawiam się czy nie ma jakiegoś gotowego błyskotliwego pomysłu na taki problemik ;> ?
P-74610
m4tx
» 2013-01-21 20:57:41
Ja bym zapewne zrobił jakiś system rang :)
P-74611
pekfos
» 2013-01-21 21:03:15
Zależy w czym to ma być zrobione. Można użyć flag bitowych :)
P-74613
akwes
Temat założony przez niniejszego użytkownika
» 2013-01-21 21:10:42
@m4tx
Wtedy zamiast powiązać panele z użytkownikami, trzeba powiązać je z grupami, czyli problem dalej ten sam :P

@pekfos
Paneli domyślnie jest kilkanaście, a może być ich więcej.

A ma być to zrobione w MySQL, i sterowane z poziomu PHP.
P-74615
pekfos
» 2013-01-21 21:15:54
A może tak?
[panel][Ktosik][Cosik]..
      1    true  false
      2   false  false
P-74616
akwes
Temat założony przez niniejszego użytkownika
» 2013-01-21 21:18:55
Ilość użytkowników/grup też jest zmienna. Chyba nie obędzie się bez przebudowywania tabeli z prawami.
P-74618
pekfos
» 2013-01-21 21:22:15
@pekfos
Paneli domyślnie jest kilkanaście, a może być ich więcej.
A może narzuć limit paneli do x, i zapisuj uprawnienia w postaci flag bitowych w x-bitowym bloku danych binarnych. ;P
P-74621
xevuel
» 2013-01-21 21:27:44
Może dodać do 2 kolumnę ID, a 3 skonfigurować w ten sposób:
panel_ID | user_ID
1        | 1
1        | 3
2        | 1
2        | 2
3        | 1

i potem taki pseudokod:
SELECT cokolwiek FROM tabela_3 WHERE panel_ID='ID panelu do którego chce się uzyskać dostęp' AND user_ID='$_SESSION["user_ID"]'
Jeśli get_num_rows == 0, Access Denied. Inna sprawa, że w przypadku dużej ilości użytkowników i paneli taka tabela może trochę dużo zajmować...
P-74623
« 1 » 2
  Strona 1 z 2 Następna strona