![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 15.10.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie, czy z punktu widzenia wydajności bazy danych bardziej opłaca się mieć taką strukturę:
tabela kluby: id (int), nazwa (varchar), herb (varchar), prezes (varchar), barwy (varchar), adres (varchar) (wszystkie te kolumny są not null) oraz sukcesy (text i null) CZY tabele kluby: id (int), nazwa (varchar), herb (varchar), prezes (varchar), barwy (varchar), adres (varchar) (wszystkie te kolumny są not null) oraz kluby_sukcesy: id_klub (int), sukcesy (text i null) Ten post edytował henio 3.08.2009, 10:24:19 |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Ogólnie powinno się unikać pakowania do tabel kolumn, które mogą przyjąć wartości NULL. To by więc sugerowało użycie 2 tabel. Ważniejszym jednak elementem przemawiającym za 2 tabelami jest to, że 1 klub może mieć wiele sukcesów. Używając 1 tabeli musiałbyś pakować te "sukcesy" do jednego pola TEXT, natomiast mając 2 tabele możesz utworzyć ładną relację, dzięki której będziesz mógł sortować i filtrować sukcesy w dowolny sposób.
Reasumując: 2 tabele. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 54 Pomógł: 4 Dołączył: 22.08.2006 Ostrzeżenie: (0%) ![]() ![]() |
Mam pytanie, czy z punktu widzenia wydajności bazy danych bardziej opłaca się mieć taką strukturę: tabela kluby: id (int), nazwa (varchar), herb (varchar), prezes (varchar), barwy (varchar), adres (varchar) (wszystkie te kolumny są not null) oraz sukcesy (text i null) CZY tabele kluby: id (int), nazwa (varchar), herb (varchar), prezes (varchar), barwy (varchar), adres (varchar) (wszystkie te kolumny są not null) oraz kluby_sukcesy: id_klub (int), sukcesy (text i null) Prawdę mówiąc przy 1 i 2 strukturze tabeli wykonasz tylko jedno zapytanie , lecz później będziesz musiał użyć explode, trochę więcej kombinowania z usuwaniem sukcesu itd. Więc ja osobiście polecam 2 strukturę , gdyż zawsze będziesz mógł dodać dodatkowe pole, typu data sukcesu i nie sprawi Ci to żadnego problemu. Jeżeli nie planujesz poszerzać tabel, to jest to bez znaczenia które rozwiązanie wybierzesz, tylko przy 1 czeka Cię więcej pracy. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 237 Pomógł: 1 Dołączył: 15.10.2004 Skąd: Lublin Ostrzeżenie: (0%) ![]() ![]() |
Ja planuje zrobić po prostu pole tekstowe gdzie ręcznie będzie się wpisywać dane typu: Puchar Anglii: 2000, 2001, 2004, 2006;
|
|
|
![]()
Post
#5
|
|
Grupa: Moderatorzy Postów: 6 072 Pomógł: 861 Dołączył: 10.12.2003 Skąd: Dąbrowa Górnicza ![]() |
Rób jak uważasz. Bardziej logicznym i wygodniejszym (i poprawnym!) wyjściem byłoby oparcie tego na 2 tabelach.
|
|
|
![]() ![]() |
![]() |
Aktualny czas: 15.09.2025 - 11:29 |