Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Prosty projekt bazy
Forum PHP.pl > Forum > Bazy danych
DiH
Witam,

Wiem, że to podstawy, ale cóż... Chcę stworzyć bazę, w której będą umieszczane różne puby, restauracje, pizzerie etc. przy czym ma być potem możliwość sortowania ich wg. kategorii (jeden lokal może należeć do kilku kategorii). Chciałbym prosić o radę, jak zaprojektować tabelki. Jak na razie wpadłem na dość trywialny pomysł, aby stworzyć trzy tabele:
Kod
1. tabela kategorie:
2. tabela lokale
3. tabela w formie:
---1. pub lokal1
---2. pub lokal2
---3. restauracja lokal3
etc.

Nie mam jednak pojęcia czy to dobry pomysł i na jakie pola powinienem nałożyć indeksy. Oprócz samego pomysłu jak to zaprojektować, może ktoś byłby tak dobry, by podlinkować do jakiegoś dobrego artykułu na projektowania baz, z przykładami.

Z góry dzięki.

rafalp
Wystarczą dwie:

  1.  
  2. -- racja za szybko mnie poniosło, sorry za zamieszanie
  3.  


Używając złączeń tych tabel będziesz mógł je sortować tak jak Ci się podoba (ORDER BY) lub po prostu stawiając warunek (..)WHERE kategorie_id = [ID lokalu ktory chcesz uzyskac]

pozdrawiam.
nospor
@rafal przeczytaj to zdanie:
Cytat
(jeden lokal może należeć do kilku kategorii
phpion
Cytat(rafalp @ 2.03.2010, 13:59:39 ) *
Wystarczą dwie

Nie wystarczą.
Cytat(DiH @ 27.02.2010, 01:14:03 ) *
jeden lokal może należeć do kilku kategorii

Konieczne będą 3 tabele:
kategoria: [id, nazwa...]
lokal: [id, nazwa...]
kategoria_lokal: [id_kategoria, id_lokal].
thek
Skoro do kilku to 3 tabele.
Tabela 1 -> Lokale, gdzie masz przynajmniej id jako primary key
Tabela 2 -> Kategorie z przynajmniej 2 kolumnami: id jako primary key i nazwą oraz co tam chcesz (meta tagi, meta opisy czy różne cuda wianki potrzebne winksmiley.jpg )
Tabela 3 -> złączeniowa z 2 kolumnami: id_lokalu i id_kategorii. Na obie zakładasz osobno index.

EDIT: Widzę że z kolegą powyżej pisaliśmy razem posta winksmiley.jpg
phpion
Cytat(thek @ 2.03.2010, 14:06:31 ) *
Tabela 3 -> złączeniowa z 2 kolumnami: id_lokalu i id_kategorii. Na obie zakładasz osobno index.

Wypadałoby zdefiniować klucz główny na obu tych kolumnach. Wówczas wystarczy założyć indeks na tej drugiej kolumnie (występującej jako druga w PK). Dwa indeksy są zbędne (mamy przecież PK).
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.