Zabieram sie do pisania prostego sklepu internetowego. Przyjąłem, że opis stałych cech produktów (cena, gwarancja) umieszczam w tabeli 'produkty', a wszystkie niestandardowe właściwości wszystkich rodzajów produktów w tabeli 'produkty_cechy'. Jak optymalnie zapisać w pierwszej tabeli wykaz pól (cech), które dotyczą danego przedmiotu i potem wypisac wartości tych cech z drugiej tabeli ?
Nie bardzo to zrozumialem ale jeżeli masz tabele produkty to zakładam że kazdy produkt ma jakieś id więc tabela produkty:
ID|Nazwa|itd.
i teraz cechy, masz dwie mozliwości:
tabela cechy
ID_produktu|cecha
lub
ID_produktu|nazwa_cechy|cecha
A wyciąganie to już prosto
SELECT
*
FROM
produkty
INNER JOIN cechy ON cechy.ID_produktu = produkty.ID
Zwróc uwagę że to zapytanie wyciagnie tylko te produkty które mają dodatkowe cechy, jak byś chciał wszystkie to użyj LEFT JOIN
Nie wiem cz dobrze rozumiem czego szukasz, ale widze to tak:
-
tabela (cechy wspólne):
id_towaru (PK)
cecha_1
cecha_2
...
cecha_nn -
tabela (cechy nie wspólne - słownik)
id_cechy (PK)
nazwa_cechy
3 tabela : (stąd pobierasz ewentualne cechy dodatkowe)
id_towaru (FK)
id_cechy (FK)
wartość_alfa
wartośc_numeric
Dzieki, właśnie o to mi chodziło (chociaż miałem troche inny pomysł na strukturę bazy, ale wasze są znacznie lepsze).
[browar]