![]() |
![]() |
![]() ![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 38 Pomógł: 0 Dołączył: 12.02.2004 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Stanąłem właśnie przed problemem mądrego zaprojektowania struktur baz danych do mojego serwisu. Chciałbym przechowywać w bazach dane użytkowników. W założeniu każdy użytkownik(w przykładzie A) może zdefiniować sobie do 5 grup i przydzielić każdego innego użytkownika(dla przykładu nazwijmy go B ) do którejś z tych grup(tylko jednej). Chciałem ten problem rozwiązać w ten sposób: Stworzyć 3 tabele 1 – users (id | inne dane bleble) 2 – grupy (id | id_usera | opis_dzialanie_grupy) 3 – polaczenie (id | id_usera | id_grupy | id_usera_przypisanego) I teraz jeżeli B wchodzi na stronę w której “władzę” ma A z bazy 3 pobierane jest id_grupy gdzie id_usera=A_id i id_usera_przypisanego=B_id. Następnie z 2 pobieramy opis warunków i podejmujemy już odpowiednie działania na stronie. Przy założeniu że w 1 będzie 100 nie ma problemów ale jeśli np. będziemy mieli 100k userów to już w grupach może być 500k rekordów a w 3 9999k. A jeśli w 1 będzie 300k :/ Mam nadzieję, że problem jest jasno przedstawiony. Czy takie rozwiązanie jest efektywne, czy jest jakiś lepszy sposób? Jakie macie propozycje, może jakieś własne doświadczenia. Kolejne pytanie. Czy ilość kolumn w tabeli ma wielkie znaczenie w szybkości wykonywania skryptów. Tzn czy mimo iż pytam o 3 kolumny z N to czy czas wykonania zapytania będzie wiele dłuższy dla dużego N? Jaka jest optymalna liczba kolumn w tabeli? |
|
|
![]() ![]() |
![]() |
Aktualny czas: 23.08.2025 - 21:26 |