Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Problem koncepcyjny bazy danych, coś pod katalog produktów
Riggs
post
Post #1





Grupa: Zarejestrowani
Postów: 162
Pomógł: 13
Dołączył: 16.06.2007

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


Witam,
otóż chce stworzyć katalog specyficznych produktów. Produkty nie są z jednej branży także mają różne właściwości. Problemem jest dla mnie przechowywanie tych produktów w bazie gdyż chcę później robić zestawienia np. sprzedaży wg użytkownika, produktu itd. Mój pomysł jest następujący:
Tabela określająca typ produktu:

TYPY
+ id
+ nazwa
+ opis

Tabela zawierajaca zdefiniowane produkty (grupy usług w systemie)

PRODUKTY
+ id
+ typ_id
+ nazwa
+ opis

i teraz mam problem z ewidencją produktów. Czy dla każdego _typu_ produktu tworzyć osobne tabele np. ProduktA, ProduktB, ProduktC? Czy też stworzyć tabelę Produkty gdzie będę miał dużo pól NULL dla różnych typów produktów? Pierwsze podejście wydaje się być prawidłowe ale np na tą chwilę nie wiem jak zrobić zestawienie wg uzytkownika który sprzedawał różne typy produktów... Czy zrobić dodatkową tabelę w której przechowam typ_id, produkt_id, user_id i za jej pomocą robić złączenia?

Proszę o pomoc bo nie chcę popełnić błędu już przy projektowaniu bazy bo może to utrudnić modyfikację aplikacji.
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Lysiur
post
Post #2





Grupa: Zarejestrowani
Postów: 66
Pomógł: 11
Dołączył: 25.07.2012

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


Problem przechowywania takich danych jest dość złożony i zależy jak dużo będziesz miał podtypów produktów, jak często będziesz robił takie zestawienie, jak często i w jakiej ilości będą rozszerzane podtypy produktów.

Rozsądznie byłoby zrobić:

PRODUKTY
+ id_produkty (PK)
+ id_typ_produkty // może się przydać dla zliczania rodzajów (o ile Ci potrzebne)
+ nazwa
+ opis
+ inne wspólne cechy (cena, etc)

PRODUKTY_TV
+ id_produkty (FK)
+ przekątna
+ kolor
+ other pola

PRODUKTY_KSIĄZKI
+ id_produkty (FK)
+ autor
+ tytuł
+ other pola

PRODUKTY_OTHER
+ .....

USER_PRODUKTY
id_user
id_produkty

W takim rozwiązaniu możesz wyłonić i np.: wyświetlić wszystkie produkty sprzedawane (na podstawie podstawowych danych PRODUKTY), a po wejściu w szczegóły wyświetlić specyficzne wartości dla poszczególnego typu.

Trochę więcej roboty będzie jeśli będziesz chciał np.: wyszukiwać później prodykty spełniające spólne cechy np.: dla dwóch podtypów. (radio -> kolor black, tv->kolor black). I teraz wyszukujesz po kolorze o_x.

Każde rozwiązanie ma swoje zalety i wady niestety.

Z kolei przechowywanie wszsytkich podtypów w jednej zbiorczej tabeli, ułatwi wyszukiwanie po specyficznych typach, ale jeżli każdy podtyp ma sporo różnych atrybutów to powstanie ładny mix i szybko przestanie być użyteczny.
Go to the top of the page
+Quote Post

Posty w temacie


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: 3.10.2025 - 14:54