![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 22 Dołączył: 17.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Chciałem was zapytać o opinie, jak najlepiej zrealizować uprawnienia do danych w bazie. Załóżmy, że mamy w bazie tabele z jakimiś umowami, które należą do różnych punktów sprzedaży. Każdy user ma przypisane uprawnienia do punktów - zazwyczaj sprzedawca tylko do swojego, koordynator do kilu a admin do wszystkiego). Czy łączenie zapytaniaz umowami do tabeli z uprawnieniami, gdzie są zapisane uprawnienia do punktów w postaci: ID_user ID_punkt 1 X1 1 X2 1 X3 1 X4 3 X2 3 X1 4 X1 To dobre rozwiązane, zważywszy na to, aby pobrać dane umowy trzeba połączyć dodatkowo 5 innych tabel? Można też zrobić zapytanie do bazy zwracające punkty do których user ma dostęp i w podzapytaniu pobierać już konkretne umowy punktu, ale gdy ma dostęp do 500 punktów robi się nam 501 zapytań, a to szybko zabije MySQL. Jakie są wasze opinie? |
|
|
![]()
Post
#2
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Tabela ID_user ID_punkt jest jak najabrdziej ok. No i gdzie ty tam widzisz 500 zapytan? Wszystko robisz jednym zapytaniem. O LEFT JOIN nie slyszal?
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 22 Dołączył: 17.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
500 zapytań to w tym 2-gim przykładzie, w pierwszym jest tylko jedno.
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W drugim przykładzie nadal masz tylko jedno zapytanie. Po raz kolejny ci piszę: LEFT JOIN
-------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Aktualny czas: 21.08.2025 - 10:52 |