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?

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.