Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Struktura bazy
Forum PHP.pl > Forum > Bazy danych > MySQL
shl
Mam pytanie co do struktury bazy. Czy potrzeba jakiegos dodatkowego klucza ID w tabelach Pr_... ( jak na rysunku) chodzi o placzenie produktu z np: kolorem.
Dany produkt moze miec przypisanych kilka kolorow, czy wystarczy taka tabela?
idProdukt
idKolor

zzeus
Wystarczy taka tabela jak podałeś.
shl
dzieki
Mchl
Dodatkowo możesz w tabelach Pr_ zdefiniować klucz główny na obu kolumnach.
shl
a cos dokladniej mozesz powiedziec ... podac przyklad jaki to ma byc klucz ... jestem wtym zielony i robie to w ciemno sad.gif

A moze ktos mi podpowie jak zrobic zapytanie do bazy o wiecej niz jeden kolor ( na podstawie tej ilustracji)

bo jak chcialbym dac zapytanie o kolor idKolor = 2 to jest o jeden, a jak ktos chcialbym wiecej kolorow

to idKolor = 2 OR idKolor = 4 OR idKolor = 5

i tu problem ze klorow moze byc wiecej (definiowane przez administratora serwisu)

i jak o nie wszytkie pytac? W jakiejs petli ?

Dzieki za pomoc i wskazowki smile.gif
eccocce
Co do zapytania o kolory - musisz złączyć ze sobą tabele Produkt, Pr_Kolor i Kolor i wtedy utworzy ci się tabela, w której będziesz miał w wierszach produkt i wszystkie związane z nim kolory. Do złączania używa się JOIN. Popróbuj, są przykłady, powinieneś skumać bez problemu smile.gif Jakby co, pytaj.
Mchl
Cytat(shl @ 15.06.2010, 22:40:08 ) *
a cos dokladniej mozesz powiedziec ... podac przyklad jaki to ma byc klucz ... jestem wtym zielony i robie to w ciemno sad.gif



Np.
Kod
ALTER TABLE Pr_Kolor
ADD PRIMARY KEY (idProdukt, idKolor)



shl
A teraz rozumiem smile.gif dodalem we wszystkich tabelach Pr_

Wiec jeszcze pewnie powinienem dodac tez w Tabeli Produkt do idFirma, tak ?

Dzieki smile.gif

Cytat(eccocce @ 15.06.2010, 21:15:56 ) *
Co do zapytania o kolory - musisz złączyć ze sobą tabele Produkt, Pr_Kolor i Kolor i wtedy utworzy ci się tabela, w której będziesz miał w wierszach produkt i wszystkie związane z nim kolory. Do złączania używa się JOIN. Popróbuj, są przykłady, powinieneś skumać bez problemu smile.gif Jakby co, pytaj.


Chyba nie o to mi chodzilo ... o laczeniu tabel to wiem ... i umiem sobie polaczyc tak produkty by miec w jakich kolorach sa wlasnie za pomoca tabeli Pr_Kolor ... mi chodzi o cos "chyba" innego ...

Jak zadac pytanie tzn napisac formule SELECT zeby dla dowolnej ilosci kolorow wybrac pasujace rekordy ... tak wiem ze po polaczeniu tym co napisales bede mial wszystkie i teraz chodzi o odfiltrowanie tylko tych produktow w tych kolorach co wybral użytkownik ... wiec bedzie potrzebne zapewne WHERE i ok tu moge sobie teraz recznie wpisac np: dwa kolory idKolor = 2 OR idKolor =3, ale jak np: bedzie w bazie 15 kolorow? i ktos wybierze z nich 10 ... to jak wtedy?

Chodzi mi po glowie taki pomysl moze to byc rozwiazanie ... pobieram od uzytkownika jakie kolory wybral np: 1,2,4,6,8,11,15 i teraz za pomoca PHP Tworze cos takiego:

$wybrane_kolory = (idKolor = 1 OR idKolor = 2 OR idKolor =4 ... idKolor = 15) i to za pomoca zmiennej podzucam do zapytania SELECT ?

Takie rozwiazanie jest OK ? Czy mozna do zapytania SELECT wzucic czesc za pomoca jakiejs zmiennej $wybrane_kolory ?

Dzieki za odpowiedz smile.gif
Mchl
Cytat(shl @ 16.06.2010, 08:44:40 ) *
A teraz rozumiem smile.gif dodalem we wszystkich tabelach Pr_

Wiec jeszcze pewnie powinienem dodac tez w Tabeli Produkt do idFirma, tak ?



Nie. W tej tabeli kluczem głównym jest kolumna idProdukt.
http://pl.wikipedia.org/wiki/Klucz_g%C5%82%C3%B3wny


Kod
WHERE kolor IN (1,2,4,6,8,11,15)


Gorzej jak będziesz chciał koniunkcję uzyskać...
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.