Ja, dat doe ik inderdaad ookquote:Op donderdag 8 januari 2009 13:43 schreef Roy_T het volgende:
Ik zou het wel redundant opslaan, en dezelfde tabel gebruiken voor "bestellingen" en "facturen". Het is namelijk precies hetzelfde, alleen is bij de ene "payed" false en bij de andere true.
Waarom zou je de prijs aan willen passen nadat een product besteld is maar nog niet geleverd? Stel dat je iets bestelt voor 10 euro, 10 minuten later maakt de admin dat product 20 euro en wanneer de bestelling wordt afgehandeld is de klant opeens het dubbele kwijt.
Data redundant opslaan lijkt me in dit geval een duidelijk voordeel hebben: het is 100% gelijk aan het moment waarop er besteld werd.
Ik zou overigens wel een aparte tabel maken voor orders (dus bestellingen), met hierin het klantnummer, afleveradres, status, etc. en een tabel met order_items (ofzo) die weer aan orders hangen.
Dat dus. Bestellingen != Facturen, en daar moet je in je database al rekening mee hebben gehouden.quote:Op donderdag 8 januari 2009 13:43 schreef Roy_T het volgende:
Ik zou het wel redundant opslaan, en dezelfde tabel gebruiken voor "bestellingen" en "facturen". Het is namelijk precies hetzelfde, alleen is bij de ene "payed" false en bij de andere true.
Waarom zou je de prijs aan willen passen nadat een product besteld is maar nog niet geleverd? Stel dat je iets bestelt voor 10 euro, 10 minuten later maakt de admin dat product 20 euro en wanneer de bestelling wordt afgehandeld is de klant opeens het dubbele kwijt.
Data redundant opslaan lijkt me in dit geval een duidelijk voordeel hebben: het is 100% gelijk aan het moment waarop er besteld werd.
Ik zou overigens wel een aparte tabel maken voor orders (dus bestellingen), met hierin het klantnummer, afleveradres, status, etc. en een tabel met order_items (ofzo) die weer aan orders hangen.
Besteld (dus in je winkelwagen) maar nog niet betaald, dan betaal je gewoon de actuele prijs. Volgens mij is dat gebruikelijk. Kijk maar naar amazon of bol. Als iets in je winkelwagen zit, maar nog niet betaald is.quote:Op donderdag 8 januari 2009 13:43 schreef Roy_T het volgende:
Waarom zou je de prijs aan willen passen nadat een product besteld is maar nog niet geleverd? Stel dat je iets bestelt voor 10 euro, 10 minuten later maakt de admin dat product 20 euro en wanneer de bestelling wordt afgehandeld is de klant opeens het dubbele kwijt.
En hoe wil jij de bestelgeschiedenis van iemand gaan bijhouden dan met optie 1?quote:Op donderdag 8 januari 2009 15:41 schreef Database het volgende:
[..]
Besteld (dus in je winkelwagen) maar nog niet betaald, dan betaal je gewoon de actuele prijs. Volgens mij is dat gebruikelijk. Kijk maar naar amazon of bol. Als iets in je winkelwagen zit, maar nog niet betaald is.
Daarnaast is een factuur niet hetzelfde als een bestelling wat betaald is aangezien een factuuradres anders kan zijn dan het bezorgadres.
Sterker nog, real life is een bestelbon ook geen factuur en als je gaat modelleren wil je dat soort nuances ook in je model hebben. En tuurlijk er zijn altijd wel hacks te bedenken om twee verschillende beestjes een te maken (of andersom), maar omdat het kan en omdat het werkt wil het nog niet zeggen dat het goed is.
Stel je gaat naar een winkel en plaatst een bestelling wat je over 5 dagen op kan komen halen. Je komt na 5 dagen je bestelling halen. De winkelier kan voor zijn eigen gemak en voor het milieu geen factuur maken maar jou bestelbon ondertekenen en erbij zetten dat het betaald is. Dat gebeurt toch ook niet..? En fraudegevoeligheid is echt niet de belangrijkste reden.
Een persoon heeft 0 of meer facturen, een factuur heeft 1 of meer producten. Tadaamquote:Op donderdag 8 januari 2009 15:44 schreef Scorpie het volgende:
[..]
En hoe wil jij de bestelgeschiedenis van iemand gaan bijhouden dan met optie 1?
Dan is een "bestelling" voor ons beiden iets anders. Ik zou pas een "bestelling" van iets maken wanneer de order geplaatst wordt, en het tot die tijd alleen in de sessie of tijdelijk in een aparte tabel ofzo zetten.quote:Op donderdag 8 januari 2009 15:41 schreef Database het volgende:
Besteld (dus in je winkelwagen) maar nog niet betaald, dan betaal je gewoon de actuele prijs. Volgens mij is dat gebruikelijk. Kijk maar naar amazon of bol. Als iets in je winkelwagen zit, maar nog niet betaald is.
Daarnaast is een factuur niet hetzelfde als een bestelling wat betaald is aangezien een factuuradres anders kan zijn dan het bezorgadres.
Ik vind het geen hack. Je kunt wel alles naar real life willen modeleren, maar soms (en imo in dit geval) kun je hierbij gelukkig dingen die in real life niet kunnen. Jij hebt het over bestelbonnen en facturen, ik gewoon over "orders". En die zijn betaald of niet betaald (of hebben een andere status, zoals "wacht op akkoord" of whatever), en op basis van die status kun je een bestelbon, afleverbon, retourbon, RMA-formulier of een factuur genereren. Dat je in de supermarkt een bonnetje krijgt, wil niet zeggen dat er in hun boekhouding allemaal "bonnetjes" zitten. Dat zijn gewoon verkopen/orders, waarbij het bonnetje één van de vele mogelijke representaties van die order is.quote:Sterker nog, real life is een bestelbon ook geen factuur en als je gaat modelleren wil je dat soort nuances ook in je model hebben. En tuurlijk er zijn altijd wel hacks te bedenken om twee verschillende beestjes een te maken (of andersom), maar omdat het kan en omdat het werkt wil het nog niet zeggen dat het goed is.
Bestelling_nr , Klant_nummer, Productnummer, Product_naam,product_gewicht, Prijsquote:Op donderdag 8 januari 2009 07:29 schreef jeroen2497 het volgende:
Ik heb een vraag mbt de bouw van een webshop.
Hoe zouden jullie de data van een bestelling in de database opnemen?
Een tabel met;
- klant_nummer, product_nummer, prijs
- klant_nummer, product_nummer, product_naam, product_gewicht, prijs
Het voordeel van optie 2 is dat als er een productnaam wordt gewijzigd (of zelfs verwijderd), dat alle info wel in de bestelling blijft staan.
Het gaat om flink wat bestellingen per dag.
Graag jullie idee hier over!!
orders kunnen ook anders worden weergegeven.quote:orders (order_id, klant_id, opmerkingen, timestamp)
orders_items, (item_id, order_id, naam, prijs, opmerkingen)
orders_gegevens (order_ID, factuur_adres, leverings_adres)
PHP kan dat nietquote:Op vrijdag 9 januari 2009 10:02 schreef LordNemephis het volgende:
Is er ook iemand die tips heeft m.b.t. uploaden en converteren naar .FLV van filmpjes m.b.v. PHP? Ik las op het grote internet dat Ffmpeg daarvoor het meest geschikt zou zijn - iemand die dat kan bevestigen?
Heb dat nog nooit gedaan en wil daar toch es mee aan de slag
Ik weet dat PHP op zichzelf geen video's kan converteren. Ik zocht idd naar een OpenSource oplossing (lees: graties). Ffmpeg is dus wel een aanrader voor mij?quote:Op vrijdag 9 januari 2009 11:02 schreef Tijn het volgende:
FFMpeg is niet het beste programma om video's mee te recoden, maar het is in elk geval wel gratis en ondersteunt veel formaten. Je kunt het vanuit PHP makkelijk aanroepen omdat het een command line programma is.
Ja, gratis is er sowieso weinig anders te vinden op dit gebied.quote:Op vrijdag 9 januari 2009 11:31 schreef LordNemephis het volgende:
[..]
Ik weet dat PHP op zichzelf geen video's kan converteren. Ik zocht idd naar een OpenSource oplossing (lees: graties). Ffmpeg is dus wel een aanrader voor mij?
1 |
Tijd voor een lesje datatypes voor beginnersquote:Op vrijdag 9 januari 2009 14:55 schreef Gloeidoos het volgende:
Stel ik heb in tabel a een kolom 'naam'. In tabel b is de primary key deze 'naam'. Verder staat in tabel b nog een kolom 'enabled' met de waarde 'Y' of 'N'.
Ik heb de tables aangepast om het een beetje simpel te houden. In feite is het een kolomnaam met de naam state, enum('enabled','disabled'). Volgens mij komen hier uiteindelijk nog meer states bij, als dat nodig is.quote:Op vrijdag 9 januari 2009 15:18 schreef Roy_T het volgende:
[..]
Tijd voor een lesje datatypes voor beginners
Wat jij wilt is een boolean, en die sla je normaliter in een MySQL database op als integer met de waarde 1 (true) of 0 (false).
Zou voor geen van die beide gaan... zou voor het volgende gaan...quote:Op donderdag 8 januari 2009 07:29 schreef jeroen2497 het volgende:
Ik heb een vraag mbt de bouw van een webshop.
Hoe zouden jullie de data van een bestelling in de database opnemen?
Een tabel met;
- klant_nummer, product_nummer, prijs
- klant_nummer, product_nummer, product_naam, product_gewicht, prijs
Het voordeel van optie 2 is dat als er een productnaam wordt gewijzigd (of zelfs verwijderd), dat alle info wel in de bestelling blijft staan.
Het gaat om flink wat bestellingen per dag.
Graag jullie idee hier over!!
Of, nog een andere optie:quote:Op vrijdag 9 januari 2009 14:58 schreef HuHu het volgende:
Wat je nu doet is hetzelfde als:
[ code verwijderd ]
1 2 3 4 5 | FROM a JOIN b USING (naam) WHERE b.enabled = 'Y'; |
Kan je mij uitleggen wat er beter is aan:quote:Op vrijdag 9 januari 2009 14:58 schreef HuHu het volgende:
Wat je nu doet is hetzelfde als:
[ code verwijderd ]
Die tweede vorm is veel efficienter. Je geeft daar meteen aan hoe gejoind moet worden in de on clause, en daardoor kan de query beter geoptimaliseerd worden.quote:Op vrijdag 9 januari 2009 17:21 schreef slacker_nl het volgende:
[..]
Kan je mij uitleggen wat er beter is aan:
select * from a,b where a.id = b.pid and b.bla = 'Y';
en
select * from a join b on a.id = b.pid where b.bla = 'Y';
?
En ik vind het ook een stuk leesbaarder.quote:Op vrijdag 9 januari 2009 18:10 schreef Farenji het volgende:
[..]
Die tweede vorm is veel efficienter. Je geeft daar meteen aan hoe gejoind moet worden in de on clause, en daardoor kan de query beter geoptimaliseerd worden.
Forum Opties | |
---|---|
Forumhop: | |
Hop naar: |