Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Zapis tablicy uprawnień jako ciąg binarny, ...a dalej jako int/bigint
kiler129
post
Post #1





Grupa: Zarejestrowani
Postów: 566
Pomógł: 35
Dołączył: 21.06.2006

Ostrzeżenie: (0%)
-----


Witajcie!
Realizując dalej plany rozpocząłem przemyślać tablice uprawnień w CMSie. Jedna kwestia mnie zastanowiła - po co używać 30-40 kolumn w tabeli uprawnień (jak robią wszystkie znane mi CMSy) z polami int (a w nich 0/1) lub set skoro można odowołać się do systemu binarnego?
Wiedząc, że zwykły INT w MySQL (jak to wygląda w bazach FireBird, PgSQL i SQLite?) posiada zakres od -2 147 483 647 do +2 147 483 647 mogę zamienić go na system binarny co daje mi 4 294 967 295 możliwych kombinacji.
Normlanie uprawnienia to np. logowanie, komentowanie, dostęp do panelu administracyjnego, edycja newsów itd.
Zamiast zapisywać to w kilku kolumnach zapiszę to jako ciąg:
Kod
1 0 1 1

Oznaczać to może kolejno: możliwość logowania, brak możliwości komentowania, dostęp adm i możliwość edycji newsów.
Teraz gdyby zamienić to na system dziesiętny otrzymamy liczbę "11" i taką właśnie zapiszę do bazy danych.

Czy taka koncepcja ma sens? Jeśli tak to dlaczego nie widuje się jej w innych projektach? (IMG:style_emoticons/default/worriedsmiley.gif)
Nie wiem czy dobrze wykonałem obliczenia ale z tego co patrze cały zakres int daje mi możliwość zapisania 32 uprawnień 0/1. Nie wiem jak wyglądają w innych bazach typy medium int oraz bigint - jest to uniwersalne między MySQL, PgSQL, FireBird oraz SQLite czy to tylko wynalazek MySQLa?

Z góry dziękuję za pomoc.


p.s. Droga GTW - zróbcie coś z tym wyrzucaniem z sesji bo dłuższego niż 4 linijki postu napisać się nie da normlanie.
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 22.08.2025 - 17:09