database design
reeds enkele jaren maak ik gebruik van databases om websites / catalogen te voeden met data. Ik heb nog nooit een eigen database opgezet.
Nu zou ik voor mijn eigen site een database willen maken, maar ik zit vast met het ontwerp van de database.
Ik zou een tabel willen maken met de geboortegewichten van m'n puppies. Dit is de tabel die ik uiteindelijk op mijn website zou willen laten zien:
https://www.metztli.be/downloads/Checklist%20Gewicht%20Puppen%202018.xlsx (tab week 1)
Kan iemand mij op weg zetten hoe ik de database moet ontwerpen?
Alvast heel erg bedankt
https://dev.mysql.com/doc/refman/8.0/en/creating-database.html
Toevoeging op 17/05/2019 15:26:42:
Om je fantasie te prikkelen.
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
DROP TABLE IF EXISTS `puppen`;
CREATE TABLE `puppen` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`naam` varchar(100) NOT NULL,
`kenmerk` varchar(100) NOT NULL,
`geslacht` set('reu','teef') NOT NULL,
`geboortedatum` date NOT NULL,
`gewicht_geboorte` int(11) NOT NULL,
`gewicht_ochtend` int(11) NOT NULL,
`gewicht_avond` int(11) NOT NULL,
`gewicht_toename_dag` int(11) NOT NULL,
`gewicht_toename_vorige_dag` int(11) NOT NULL,
`gewicht_toename_vanaf_geboorte` int(11) NOT NULL,
`gewicht_toename_percentage` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `puppen` (`id`, `naam`, `kenmerk`, `geslacht`, `geboortedatum`, `gewicht_geboorte`, `gewicht_ochtend`, `gewicht_avond`, `gewicht_toename_dag`, `gewicht_toename_vorige_dag`, `gewicht_toename_vanaf_geboorte`, `gewicht_toename_percentage`) VALUES
(1, 'Bert', 'Vlek been', 'reu', '2018-02-14', 200, 250, 260, 10, 10, 50, 25);
CREATE TABLE `puppen` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`naam` varchar(100) NOT NULL,
`kenmerk` varchar(100) NOT NULL,
`geslacht` set('reu','teef') NOT NULL,
`geboortedatum` date NOT NULL,
`gewicht_geboorte` int(11) NOT NULL,
`gewicht_ochtend` int(11) NOT NULL,
`gewicht_avond` int(11) NOT NULL,
`gewicht_toename_dag` int(11) NOT NULL,
`gewicht_toename_vorige_dag` int(11) NOT NULL,
`gewicht_toename_vanaf_geboorte` int(11) NOT NULL,
`gewicht_toename_percentage` int(11) NOT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
INSERT INTO `puppen` (`id`, `naam`, `kenmerk`, `geslacht`, `geboortedatum`, `gewicht_geboorte`, `gewicht_ochtend`, `gewicht_avond`, `gewicht_toename_dag`, `gewicht_toename_vorige_dag`, `gewicht_toename_vanaf_geboorte`, `gewicht_toename_percentage`) VALUES
(1, 'Bert', 'Vlek been', 'reu', '2018-02-14', 200, 250, 260, 10, 10, 50, 25);
Aanpassen naar behoefte.
Als je echter wilt uitbreiden, dan zulke je relationeel model moeten bouwen.
Deze Wikipedia-pagina beschrijft dit principe best wel duidelijk:
https://nl.wikipedia.org/wiki/Relationeel_model
https://nl.wikipedia.org/wiki/Databasenormalisatie
Gewijzigd op 17/05/2019 15:46:47 door - Ariën -
"Puppies" en "Gewichten" zijn niet echt hetzelfde, maar zijn tegelijkertijd onlosmakelijk met elkaar verbonden.
Hoe meer gegevens je gestructureerd opslaat, hoe meer informatie je hier ook weer uit kunt halen op den duur.
De voorgestelde tabel is al een mooie aanzet.. Ik denk ook dat het beter is om relationele tabellen te gaan maken.
Ik vermoed ééntje met de pups, eventueel met geboortegegevens. Een andere met de gewichten.
Zou ik één tabel maken met alle gewichten van alle pups samen of per pup een andere tabel?
Ik zou dus voor één tabel gaan waarin je de gewichten van de pups inzet.
Gewijzigd op 18/05/2019 10:02:55 door - Ariën -
Kolommen zoals gewichttoename, % toename, laat ik via functies berekenen
Ik heb nog wat problemen met gewichttoename sinds vorige dag.. maar ga zelf even proberen.. mocht het me niet lukken dan horen jullie van me ;-)