Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MSSQL]Jedna czy dwie tabele?
henio
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 4)
phpion
post
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.
Go to the top of the page
+Quote Post
z3L
post
Post #3





Grupa: Zarejestrowani
Postów: 54
Pomógł: 4
Dołączył: 22.08.2006

Ostrzeżenie: (0%)
-----


Cytat(henio @ 3.08.2009, 11:24:03 ) *
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.
Go to the top of the page
+Quote Post
henio
post
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;
Go to the top of the page
+Quote Post
phpion
post
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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 15.09.2025 - 11:29