Database indeling
Momenteel ben ik bezig om voor mijn werk een bestelsysteem te maken waarin wij de bestellingen gaan invoeren. Echter zit ik momenteel met 2 database indelingen in mijn hoofd. Ik ga gebruik maken van de serialize functie om een array op te slaan in de DB, verder is het formulier dynamisch en heeft drie input fields, met de namen 'productName, productPrice en productAmount'.
Manier 1:
CREATE TABLE `test`.`product_way1` (
`id` VARCHAR(255) NOT NULL AUTO_INCREMENT ,
`name` INT NOT NULL ,
`price` DECIMAL(5,2) NOT NULL ,
`amount` INT NOT NULL ,
PRIMARY KEY (`id`)) ENGINE = InnoDB;
Manier 2:
CREATE TABLE `test`.`product_way1` (
`id` VARCHER(255) NOT NULL AUTO_INCREMENT ,
`productData` INT NOT NULL ,
PRIMARY KEY (`id`)) ENGINE = InnoDB;
Bij manier 1 maak ik voor de input velden een aparte array, en sla die ook apart in de database op. Bij manier 2 wil ik de data gaan creëren als volgt;
[productName, productPrice, productAmount]
dit ga ik dan vervolgens serializen in om het op te gaan slaan in de database.
Naar mijn opzien is manier 1 gestructureerd, netter en duidelijker. Wat is jullie mening?
Gewijzigd op 17/05/2017 17:47:27 door Endreaw nvt
En je mist waarschijnlijk een overkoepelende tabel: de bestellingen/orders, die op hun beurt uiteenvallen in orderregels (waarin je product + hoeveelheid + prijs bijhoudt). Deze orders-tabel heb je nodig om de orderregels op een zinnige manier te kunnen groeperen (extra kolom order_id).
Gewijzigd op 16/05/2017 23:42:47 door Thomas van den Heuvel
en numerieke waarden als prijs en aantal in een TEXT (text tot een lengte van 65000 tekens).
Prijs gaat het best in een DECIMAL veld en aantal in een INT, of als er ook halve of kwarten etc verkocht kunnen worden in een DECIMAL.
Thomas van den Heuvel op 16/05/2017 23:42:05:
Hoe ga je ooit informatie terugvinden in geserialiseerde data? Het idee van databases is dat je gestructureerd data opslaat.
En je mist waarschijnlijk een overkoepelende tabel: de bestellingen/orders, die op hun beurt uiteenvallen in orderregels (waarin je product + hoeveelheid + prijs bijhoudt). Deze orders-tabel heb je nodig om de orderregels op een zinnige manier te kunnen groeperen (extra kolom order_id).
En je mist waarschijnlijk een overkoepelende tabel: de bestellingen/orders, die op hun beurt uiteenvallen in orderregels (waarin je product + hoeveelheid + prijs bijhoudt). Deze orders-tabel heb je nodig om de orderregels op een zinnige manier te kunnen groeperen (extra kolom order_id).
De overkoepelende tabel bestaat al, daarin koppel ik de bestelregels aan de klanten, ik heb inmiddels wel beslist en besloten om voor manier 1 te gaan, iedere bestelling per regel opslaan ivm het makkelijk kunnen doorzoeken van de database. Daarbij is het dan makkelijker om een suggestie te tonen.