Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Struktura bazy
shl
post
Post #1





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

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


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

Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 8)
zzeus
post
Post #2





Grupa: Zarejestrowani
Postów: 441
Pomógł: 71
Dołączył: 3.09.2007
Skąd: wrocław

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


Wystarczy taka tabela jak podałeś.


--------------------
Go to the top of the page
+Quote Post
shl
post
Post #3





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

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


dzieki
Go to the top of the page
+Quote Post
Mchl
post
Post #4





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Dodatkowo możesz w tabelach Pr_ zdefiniować klucz główny na obu kolumnach.
Go to the top of the page
+Quote Post
shl
post
Post #5





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

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


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
Go to the top of the page
+Quote Post
eccocce
post
Post #6





Grupa: Zarejestrowani
Postów: 165
Pomógł: 5
Dołączył: 10.07.2008
Skąd: Wrocław

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


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.
Go to the top of the page
+Quote Post
Mchl
post
Post #7





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


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)



Go to the top of the page
+Quote Post
shl
post
Post #8





Grupa: Zarejestrowani
Postów: 24
Pomógł: 0
Dołączył: 8.12.2004
Skąd: Wrocław

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


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

Ten post edytował shl 16.06.2010, 07:46:58
Go to the top of the page
+Quote Post
Mchl
post
Post #9





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


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ć...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 20.08.2025 - 05:14