Compaq = Computers often make people quite angry!
Nikon D50 + 18-70mm f3.5-4.5G + 70-210mm f4.0 + lensbaby 2.0 + SB-600, handgrip & Sony HC40 DVcam
neographikal wijzigde dit bericht 24-07-2008 17:02 (25%)
Nauwelijks gebruikte Canon 85/1.8 te koop incl Hoya SHMC filter. DM voor meer info.
Fotograaf nodig?
bundel kan uit max 2 producten bestaan en dit zal later ook niet gewijzigd worden..quote:neographikal schreef op donderdag 24 juli 2008 @ 16:59:
Zou je die bundels en de informatie daarover (kortingspercentage oid) niet gewoon in een aparte tabel kwijt kunnen? Stel, je hebt straks een bundel uit drie producten, wat dan? edit: daar dacht je zelf al aan, lijkt mij een logische keuze
Compaq = Computers often make people quite angry!
Nikon D50 + 18-70mm f3.5-4.5G + 70-210mm f4.0 + lensbaby 2.0 + SB-600, handgrip & Sony HC40 DVcam
Maar ik zou eerder denken aan een ander datamodel. product_bundel_1 en product_bundel_2 lijken mij onhandig. Maak gewoon een extra tabel als GebundeldProduct(product_id,product_in_bundel). Kun je ook gelijk bundels van meer dan 2 producten maken, en hoef je niet dingen met 'or' te doen.
Nauwelijks gebruikte Canon 85/1.8 te koop incl Hoya SHMC filter. DM voor meer info.
Fotograaf nodig?
code:
1
2
| `product_bundel_1` varchar(10) default NULL, `product_bundel_2` varchar(10) default NULL, |
Dan moet er meteen in je hoofd een belletje gaan rinkelen dat er iets niet klopt. Wat als je een aanbieding met 3 producten wil maken? Normaliseren is de key hier.
Zeg nooit nooit. Hoe vaak ik al van opdrachtgevers heb gehoord "dit veranderd nooit" en "dit staat vast".quote:bundel kan uit max 2 producten bestaan en dit zal later ook niet gewijzigd worden..
sig69 wijzigde dit bericht 24-07-2008 17:12 (25%)
Thats the way to go, zo kun je dus een ontelbaar aantal producten aan elkaar koppelen en heb je niet bij elk artikel 2 velden die voor 95% van de artikelen toch niet gebruikt worden.quote:... denken is een koppeltabel waar die die bundel productcodes in staan.
Denk aan een tabel met :
code:
1
2
3
| ID bundleID productID |
en dan kun je eventueel nog een tabel met bundleID's maken waarin je de korting en eventueel andere dingen specificeert
... MMORPG Addict.
Waar dient de kolom ID voor in deze? Volgens mij is die overbodig.quote:CRiMiNaL schreef op donderdag 24 juli 2008 @ 17:15:
Denk aan een tabel met :
code:
1 2 3 ID bundleID productID
@TS:
Je hebt een product, een bundel en een bundel van producten. Eigenlijk hoef je de syntax van SQL niet te begrijpen om aan te voelen dat 3 tabellen het meest logisch is.
AlainS wijzigde dit bericht 24-07-2008 22:08 (27%)
't Giet zoas 't giet | Nederlands en Belgisch [k]ubuntu forum
Ja eigenlijk is hij overbodig, maar ik hou ervan om altijd 1 unieke identifier in m'n tabellen te hebben aangezien de andere 2 deze eigenschap niet hebben.quote:AlainS schreef op donderdag 24 juli 2008 @ 22:06:
[...]
Waar dient de kolom ID voor in deze? Volgens mij is die overbodig.
... MMORPG Addict.
Reg. datum: 28 april 2000
To be, or not to be, those are the parameters
ik heb nu zo'n koppeltabel gemaakt met de volgende sql codequote:CRiMiNaL schreef op donderdag 24 juli 2008 @ 17:15:
Thats the way to go, zo kun je dus een ontelbaar aantal producten aan elkaar koppelen en heb je niet bij elk artikel 2 velden die voor 95% van de artikelen toch niet gebruikt worden.
Denk aan een tabel met :
code:
1 2 3 ID bundleID productID
en dan kun je eventueel nog een tabel met bundleID's maken waarin je de korting en eventueel andere dingen specificeert
SQL:
1 | SELECT *
|
en dan ga ik eerst dmv sql opdracht kijken of productcode voorkomt in bundelid zo nee dan is het geen bundel en dan is het een simpele sql opdracht
of heeft iemand een mooiere oplossing?
Compaq = Computers often make people quite angry!
Nikon D50 + 18-70mm f3.5-4.5G + 70-210mm f4.0 + lensbaby 2.0 + SB-600, handgrip & Sony HC40 DVcam
Wat ideeen:quote:ReseTTim schreef op vrijdag 25 juli 2008 @ 11:25:
of heeft iemand een mooiere oplossing?
- Gebruik nooit "select *", maar specificeer wat je wilt
- "a inner join b on a.x=b.y" ipv "a,b where a.x=b.y" is duidelijker
- bundelid zou ik een int maken en een foreign key naar product_id laten zijn
- Je kan dingen doen als
SQL:1
2SELECT EXISTS(SELECT * FROM bundel WHERE bundel_id=p.product_id) is_bundel
FROM product p
Maar bij het tonen van een product zie je snel genoeg of je een lege resultset terugkrijgt.
je hebt gelijk betreft die join, die moet ik verbeteren.quote:pedorus schreef op vrijdag 25 juli 2008 @ 12:14:
Wat ideeen:
- Gebruik nooit "select *", maar specificeer wat je wilt
- "a inner join b on a.x=b.y" ipv "a,b where a.x=b.y" is duidelijker
- bundelid zou ik een int maken en een foreign key naar product_id laten zijn
- Je kan dingen doen als
SQL:
1
2SELECT EXISTS(SELECT * FROM bundel WHERE bundel_id=p.product_id) is_bundel
FROM product p
Maar bij het tonen van een product zie je snel genoeg of je een lege resultset terugkrijgt.
zo heb ik het opgebouwd gezien productcode bestaat uit unieke tekenreeks. hierdoor hoeft de foreign key geen Id nummer te zijn. daarnaast is het makkelijk van doorgeven van de code.quote:CREATE TABLE `bundel` (
`bundelid` varchar(10) NOT NULL,
`productcode_fk` varchar(10) NOT NULL,
PRIMARY KEY (`bundelid`,`productcode_fk`)
) ENGINE=MyISAM DEFAULT CHARSET=latin1;
Compaq = Computers often make people quite angry!
Nikon D50 + 18-70mm f3.5-4.5G + 70-210mm f4.0 + lensbaby 2.0 + SB-600, handgrip & Sony HC40 DVcam
Reg. datum: 03 maart 2006
Pagina: 1