Database indeling

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Endreaw nvt

Endreaw nvt

16/05/2017 22:20:00
Quote Anchor link
Hallo allemaal,

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
 
PHP hulp

PHP hulp

15/11/2024 20:33:55
 
Thomas van den Heuvel

Thomas van den Heuvel

16/05/2017 23:42:05
Quote Anchor link
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).
Gewijzigd op 16/05/2017 23:42:47 door Thomas van den Heuvel
 
Ivo P

Ivo P

17/05/2017 11:14:13
Quote Anchor link
ik vind het wel apart om een naam in een int (integer, geheel getal) op te slaan,
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.
 
Endreaw nvt

Endreaw nvt

17/05/2017 17:55:41
Quote Anchor link
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).


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.
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.