MySQL struktura, nekaj vprašanj
 
De_Tomaso 25. maj 2009 08:51:20 Pridružen od:
1. jan 2009
235 objav
187 25 2
#1

Pri učenju osnov MySQL in PHP sem naletel na nekaj težav, za katere ne najdem odgovora s pomočjo googla.



In sicer imam tri tabele, ki so vezane druga na drugo. Produkti, proizvajalci, serije. In sicer potem lahko na strani prikažem posamezen produkt z vsemi podatki proizvajalec->serija->produkt. Kot primer: ford->focus->1.6 16V



Ker nameravam nekoč postaviti na strani tudi iskalnik v obliki filtra me zanima kaj narediti pri tistih poljih, kjer je opcij za vnos več. Torej, če ostanemo pri prejšnjem primeru, kaj narediti pri recimo polju barva, ko je lahko možnosti več.



Pri produktih, ki jih nameravam vnesti v bazo je namreč tako, da jih z eno majhno spremembo izdelujejo tudi do osem različnih. Na primeru z avtomobili bi to bilo tako kot, da bi recimo lahko avto naročil v štirih barvah in z recimo šestimi različnimi volanskimi obroči.



Sedaj me zanima ali moram za vsako tako možnost narediti nov vnos v tabelo produktov ali obstaja kakšna možnost, da v tista polja, ki omogočajo več vnosov vpišem več podatkov. Seveda je pri tem bistveno, da obstaja kasnejša možnost filtriranja produktov ravno po vsakem od teh kriterijev posamično.



Torej obstaja kaka možnost, da zapišem v field v bazi recimo: črna, bela, rdeča in je potem v iskalniku mogoče, da ne glede na to katero od teh treh barv izberemo, da nam vedno izpiše med rezultati tudi ta produkt?


všeč(0) ni všeč(0) spam(0)
 
blackmamba 25. maj 2009 12:06:17 Pridružen od:
4. mar 2008
559 objav
392 25 11
#2

predlagam, da ne pišeš v bazo podatkov z vejicami


všeč(0) ni všeč(0) spam(0)
 
Vini 25. maj 2009 12:21:25 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#3

Types of Relationships, tole si preberi, pa ti bo vse jasno... To, kar ti isces, je one-to-many relationship.


všeč(0) ni všeč(0) spam(0)
 
De_Tomaso 28. maj 2009 19:59:18 Pridružen od:
1. jan 2009
235 objav
187 25 2
#4

http://www.wellho.net/solutions/mysql-many-to-many-table-mapping-pivot-tables.html



Tukaj je to zelo lepo razloženo, kar se tiče relacij. Se mi pa tukaj zgodi, da dobim vse mogoče kombinacije, ne pa da bi pri enem produktu dobil prikazane možnosti.



Konkretno, na strani želim prikazati specifikacije določnenega avtomobila: po sistemu iz prvega linka bi mi recimo izpisalo 24 različnih kombinacij istega avtomobila. Torej v 4rih različnih barvah in v vsaki barvi 6 različnih možnosti volanskega obroča.



Jaz pa iščem možnost, da bi izpisal specifikacije le za en avto in nato pri polju barva navedel 4 različne barve in pri polju volanski obroč 6 različnih volanskih obročev.



Problem je ta, da bi mi izpisovanje vseh kombinacij enostavno vzelo daleč preveč prostora na strani. Če ima kdo kako idejo za rešitev bom še kako vesel vsake pomoči.


všeč(0) ni všeč(0) spam(0)
 
Vini 28. maj 2009 20:29:59 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#5

De_Tomaso, na tem linku je sicer zelo lepo razlozeno nekaj o many-to-many relacijah in pivot tabelah, kar pa ni to, kar ti isces :) Ti isces one-to-many, kot sem ti ze povedal zgoraj, preberi si se enkrat besedilo, do katerega sem ti dal povezavo...


všeč(0) ni všeč(0) spam(0)
 
De_Tomaso 28. maj 2009 20:37:02 Pridružen od:
1. jan 2009
235 objav
187 25 2
#6

Se oproščam, ker nisem prej napisal, ampak en produkt ima lahko več lastnosti in več produktov ima lahko enako lastnost.



En avto lahko ima 4 barve in 3 različni avti so lahko enake barve.



Sem pa vmes že malo naštudiral kako bi se rešil problema.



Milsim, da bom na strani recimo od posameznega avta izpisal iz tabele specifikacij vse podatke, potem bom pa pri barvi naredil repeat region, za katerega bom združil pivot tabelo in tabelo barv. Za pogoj pa bom postavil avtoID od tistega avta, za katerega bom izpisoval specifikacije.



Se lotevam tega vsaj približno pravilno?


všeč(0) ni všeč(0) spam(0)
 
Vini 28. maj 2009 20:48:00 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#7

To je se vedno one-to-many :) Saj si to tudi po slovensko napisal:*en (ONE) avtomobil ima lahko 4 (MANY) barve

*razlicni (MANY) avtomobili so lahko enake (ONE) barve

v obeh primerih ONE-TO-MANY, kajne?


všeč(0) ni všeč(0) spam(0)
 
provincjalc 29. maj 2009 05:54:22 Pridružen od:
22. maj 2009
101 objav
62 8 2
#8

skupaj je pa MANY-TO-MANY


všeč(0) ni všeč(0) spam(0)
 
Vini 29. maj 2009 08:55:38 Pridružen od:
1. sep 2006
6612 objav
5234 611 56
#9

provincjalc, seveda, ampak on ne isce tega :)


všeč(0) ni všeč(0) spam(0)
 
De_Tomaso 29. maj 2009 13:23:00 Pridružen od:
1. jan 2009
235 objav
187 25 2
#10

Ja imaš prav že od začetka. One to many sem iskal.


všeč(0) ni všeč(0) spam(0)
 
 

🔒 Za odgovor na to temo se moraš prijaviti.

Prijavi se