[SQL] Warunkowy wybór pól

0

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 ?

0

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

0

Nie wiem cz dobrze rozumiem czego szukasz, ale widze to tak:

  1. tabela (cechy wspólne):
    id_towaru (PK)
    cecha_1
    cecha_2
    ...
    cecha_nn

  2. 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

0

Dzieki, właśnie o to mi chodziło (chociaż miałem troche inny pomysł na strukturę bazy, ale wasze są znacznie lepsze).

[browar]

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0