![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
Robię sobie takiego cms'a na swoje potrzeby, i zastanawiam się jak do bazy wtsawić prawa userów... (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif)
Załóżmy, jakiś user się loguje i admin może ustawić dla niego prawa np.: dodawanie newsów, dodawanie atrykułów itd. wiadomo o co chodzi. Teraz mam problem jak to powstawiać myślałem żeby w tabeli users powstawiać pola praw np. edit_news i przypisywać im wartości 1 gdy może i 0 gdy nie może, ale co jeśli tych praw będzie dużo?? (IMG:http://forum.php.pl/style_emoticons/default/worriedsmiley.gif) To mój pierwszy projekt z wykorzystaniem bazy danych dlatego chciałem się was poradzić (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Ten post edytował krzywy36 26.03.2008, 23:15:51 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 174 Pomógł: 42 Dołączył: 22.07.2007 Skąd: /dev/random Ostrzeżenie: (0%) ![]() ![]() |
Cytat ale co jeśli tych praw będzie dużo? W czym to przeszkadza? Jeżeli zależy Ci na tym by do uprawnień używać tylko jednego pola danych to możesz zastosować iloczyn bitowy
A sume bitową zapisujesz np. do bazy danych. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
Kurcze ;/ nie za bardzo to czaje (IMG:http://forum.php.pl/style_emoticons/default/tongue.gif) , ale mam pytanie, moje rozwiązanie jest dobre czy jest jakieś wydajniejsze?? (IMG:http://forum.php.pl/style_emoticons/default/haha.gif)
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
w jednej tabeli mozesz miec userów, w drugiej spis wsyztskich mozliwych uprawnien, a w trzeciej powiazania tych dwóch rzeczy, czyli id_usera i id_uprawnienia..
w ten sposob nie mnozysz ilosci kolumn (bo jesli ktos nie ma do czegos uprawnien, to nie dodajesz tego do tabeli powiazan), a i z pod sql'a łatwo to obsluzyc... Ten post edytował nitek 26.03.2008, 23:52:15 |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 102 Pomógł: 10 Dołączył: 25.12.2005 Skąd: Ruda Śląska Ostrzeżenie: (0%) ![]() ![]() |
id_uprwnienia to chyba lepiej ustawic w skrypcie zeby nie tworzyc dodakowej tabeli i zrobic to takj jak przedstawil to artega (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
A wie ktoś jak to wygląda w typowych cms'ach np. PHP fusion, Mambo, Joomla??
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 209 Pomógł: 37 Dołączył: 27.02.2008 Skąd: Kwidzyn Ostrzeżenie: (0%) ![]() ![]() |
id_uprwnienia to chyba lepiej ustawic w skrypcie zeby nie tworzyc dodakowej tabeli i zrobic to takj jak przedstawil to artega (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ja wychodzę z założenia, że co może zrobić baza, to niech robi baza - wolę nie obciążać skryptu - dobrze zbudowane zapytania lepiej rozwiążą sprawę.. (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
Nitek, Twoje rozwiązanie będzie chyba najlepsze (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) A jeszcze mam prośbę, mógłbyś napisać przykładowe zapytanie sql w php żeby dowiedzieć się jakie user ma prawa??
Z góry thx Odświerzam temat, mógłby ktoś napisać zapytanie aby wyciągnąć prawa usera?? Mam trzy tabele: users, rights i user_rights W users mam dane o userze w rights mam spis wszystkich praw a w user_rights mam id usera i id prawa z tabeli rights tabela user_rights wygląda mniej więcej tak: user_id | right_id ---------|---------- 1--------|----- 1 1--------|----- 2 1--------|----- 10 2--------|------ 3 2--------|------ 5 itd. jak wyciągnąć prawa usera o jakimś id?? Trzeba do tego chyba użyć JOIN ale nie wiem jak się tym posługiwać ;] Ten post edytował krzywy36 28.03.2008, 23:22:51 |
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
A jak wygląda twoja tabela rights?
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 033 Pomógł: 125 Dołączył: 17.09.2005 Skąd: Żywiec Ostrzeżenie: (0%) ![]() ![]() |
Tak jak myślałem.
IMHO takie rozwiązanie jest bez sensu. Załóżmy że zwykły użytkownik w twoim CMSie będzie miał prawa do: - czytania artykułów - oceniania artykułów - komentowania artykułów - edytowania swoich komentarzy artykułów - kasowania swoich komentarzy artykułów - raportowania wszystkich komentarzy artykułów - czytania newsów - komentowania newsów - edytowania swoich komentarzy newsów - usuwania swoich komentarzy newsów - raportowania wszystkich komentarzy newsów - przeglądania downloadu - pobierania plików - oceniania plików - czytania shoutboxa - pisania w shoutboxie - używania emoticon w shoutboxie ... Jak widzisz sporo tego, a wymieniłem tylko kilka rzeczy, które na pewno będziesz chciał mieć w swoim CMSie. Przy każdej rejestracji nowego użytkownika będziesz musiał dodać kilkadziesiąt wierszy do tabeli users_rights. Lepiej będzie jak w tabeli rights będziesz trzymał grupy uprawnień, np.: Goście, Użytkownicy, Administratorzy. Wtedy po rejestracji nowego użytkownika wystarczy jeden wpis do tabeli users_rights wiążący go z grupą Użytkownicy. Nic nie będzie też stało na przeszkodzie, żeby dodać kilka grup Administratorów - każdą z innymi uprawnieniami. |
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 370 Pomógł: 43 Dołączył: 1.12.2007 Skąd: Kędzierzyn Koźle Ostrzeżenie: (0%) ![]() ![]() |
Nie mam doświadczenia w tworzeniu stron dlatego nie wiem jak ma baza danych wyglądać (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)
mógłbyś napisać jak te tabele userow i praw mają wyglądać?? |
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 217 Pomógł: 23 Dołączył: 2.12.2007 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Słownie to najlepiej tak:
Tabela użytkownicy -id -login -haslo -uprawnienia A kodem:
To tylko taki przykład, zależy jakie informacje chcesz przechowywać o użytkowniku... a uprawnienia to poprostu liczby, czyli 1- Admin 2- redaktor 3- zwykły user |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 06:04 |