Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MYSQL] Struktura bazy danych i relacje między tabelami
Forum PHP.pl > Forum > Bazy danych > MySQL
elwierka
Piszę aplikację do składania zamówień przez internet, na produkty w danej firmie X.

Początkowo założyłam, że baza danych będzie zawierała m.in. tabelę Produkty oraz tabelę Kategorie, w relacji wiele do jednego. Poniżej przedstawiam fragment relacji:



Jednak zastanawiam się też nad lekką zmianą struktury tych tabel i nie wiem, czy nie lepiej zrobić dodatkowo dwie tabele...Podkategorie , oraz Grupy towarów...i jakoś połączyć je z tabelami Kategorie i Produkty (tak mi doradził mój wykladowca na uczelni). Nie wiem tylko, które tabele będzie najlepiej ze sobą powiązać i czy w ogóle w przypadku tego projektu takie rozwiązanie będzie miało sens. Tu właśnie proszę o poradę...

Baza danych ma m.in. przechowywać dane o produktach producenta galanterii skórzanej i skóropodobnej. Produktami są teczki (a w nich wyróżnia się modele np. tk1, tk2, itd....), torby podróżne (p1, p3...itd...), torby na laptopa (l4, l7. l9) itd....

Chcę, aby później można było wyszukiwać w bazie produktów wg symbolu (np tk2, p3), wg kategorii, lub wg koloru....

Proszę o opinie i porady smile.gif
Mchl
Musiałabyś napisać jakie są wymagania odnośnie tej bazy. Na pierwszy rzut oka wygląda (prawie) ok, ale może wymagania projektu rzeczywiście powodują, że trzeba dołożyc jakieś tabele/relacje.

A teraz odnośnie 'prawie' powyżej.
1. zdjecie1, zdjecie2, zdjecie3 - to dośćć mocna sugestia, żeby zrobić tabelę zdjęcia w relacji jeden do wielu z produkatmi.
2. Co należy do kategori? Produkt, czy symbol produktu. Na razie w obu tabelach masz kolumnę kategoria_id (co nie musi być błędem).
phpion
Do tego co napisał ~Mchl dodałbym jeszcze jedną rzecz do przemyślenia: czy aby na pewno produkt może należeć tylko do 1 kategorii? Osobiście byłbym za stworzeniem osobnej tabeli typu pivot do przechowywania powiązań produkt <-> kategoria. Może okazać się to szczególnie przydatne gdy wprowadzisz sobie podkategorie czyli gdy produkt będzie przyporządkowany do całej ścieżki kategorii czyli dla N kategorii "po drodze".

Ponadto może warto przerzucić cenę produktu do osobnej tabeli, w której będziesz miała 3 główne pola: id_produktu, data, cena. Dzięki temu będziesz miała całą historię zmian ceny produktu. Ponadto będzie to przydatne przy realizowaniu zamówień sprzed zmiany ceny (no chyba że do tabeli zamówień będziesz wstawiać cenę jako wartość). Tak czy siak wziąłbym to pod rozwagę. Jeszcze jedna rzecz mi się nasunęła: dzięki tej tabeli mogłabyś robić szpanerskie zestawienia zależności cena -> liczba sprzedanych sztuk. Przeprowadzając odpowiednie analizy mogłabyś wyliczyć maksymalną cenę, po której zysk ze sprzedaży był(by) największy.
elwierka
No więc tak,

1. Chciałabym, aby klient, przeglądając dostępne produkty, miał wyświetlone własności takiego produktu (nazwa, cena, kolor, materiał, itp...no i np jeden albo ze trzy zdjęcia danego produktu) no i oczywiście w tych własnościach musi być zawarta informacja, że jest to np. plecak (kategoria) - model np. P-3 (czyli rodzaj produktu o określonym rozmiarze, materiale wykonania, itp...to tak, jak mamy np. mysz laserowa bezprzewodowa (jako kategoria i podkategoria) - model np 305...) - tylko, że u mnie nie bardzo wiem, z czego można zrobić aż takie zagłębienie w kategoriach...(no chyba że kolor, albo materiał)....

2. Chcę, aby PRODUKT należał do kategorii, a symbol produktu był podkategorią kategorii (tzn. np symbol tk1 jest charakterystyczny tylko dla kategorii teczki, a np symbol P2 tylko dla plecaków
Mchl
Skoro kategorie mają być zagnieżdżone, to warto żebyś zapoznała się z metodami na obsługę strutkur drzewiastych w relacyjnych bazach danych (jedne do drugich pasują jak pięść do nosa).
Rzuć okiem do tej prezentacji:
http://www.slideshare.net/billkarwin/sql-a...rns-strike-back
(tak od slajdu 48)
elwierka
No tak, teraz to juz sama nie wiem...czy zgłebiać się wyłącznie na tych założeniach:

  1. Firma produkuje różne typy galanterii, które chciałam zdefiniować w postaci kategorii:
  2. Teczki
  3. Plecaki
  4. Torby na laptopa
  5. Torby podróżne
  6. Torebki damskie
  7. Teczki konferencyjne
  8.  
  9. W każdej kategorii można wyodrębnić kilka rodzajów produktów, różniących się od siebie kształtem, wymiarami, rodzajem materiału, i innymi specyficznymi cechami, które stanowią o tym, że dany rodzaj produktu ma swój symbol, np. tk1, tk3, tk5 itp. Produkty o tych symbolach specyficzne są wyłącznie dla jednej kategorii. Produkt, który dodawany jest do bazy danych, może należeć również tylko do jednej kategorii (jeśli produktem jest torba podróżna, to nie przypiszemy jej do kat. Plecaki itp.).
  10.  
  11. Teczki (tk1, tk2, tk5 itd.)
  12. Plecaki (P1, P3,P6 itd.)
  13.  


czy może lepiej nie ograniczać się jedynie do wyrobów galanteryjnych i zrobić strukturę, która w przyszłości umożliwi również dodanie produktów innego rodzaju....?

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.