Hulp bij database

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Richard den Ridder

Richard den Ridder

12/11/2015 10:51:55
Quote Anchor link
hallo,
voor een hobby project ben ik bezig met een database waarbij ik de inhoud van het lokale bloemenkraampje wil helpen met de inventarisatie.
hiervoor heb ik een database gemaakt waarbij ze via een phpsite aankan geven waneer er iets verkocht is.
nu heb ik al wel een lijstje met bloemen, hoeveel fust er van is en hoeveel bossen bloemen er in de fust zitten echter de database er achter lukt voor geen meter.
het probleem zit denk ik er in dat ik geen rekening ermee heb gehouden dat de invoer van bloemen ook door meerdere mensen moet kunnen.
ik heb dus ook al een php script gemaakt waarbij je in theorie de database kan voeren met welke bloemen er komen, waarbij ik vakken heb voor:
Categorie bloem
lengte
hoeveelheid fust
hoeveelheid bossen in een fust


echter heb ik een totaal onoverzichtelijke database nu omdat deze dingen zonder samenhang in de database komen.
hoe kan ik ervoor zorgen dat wanneer de categorie, lengte en hoeveelheid bossen in een fust gelijk zijn, dat de aantal fusten bij elkaar opgeteld worden?
 
PHP hulp

PHP hulp

16/11/2024 06:26:13
 
Peter K

Peter K

12/11/2015 11:11:23
Quote Anchor link
Je kunt hiervoor een script los maken. In dit script doe je dan een SELECT met de voorwaarden die gelden volgens jou.

Denk het eerst helemaal uit hoe je dit handmatig zou doen.
Vervolgens kun je losse stukjes programmeren en die dan weer samenvoegen.

Met behulp van een knop kun je bijvoorbeeld dit script aanroepen en de voorraad actualiseren.
 
Richard den Ridder

Richard den Ridder

12/11/2015 11:16:49
Quote Anchor link
Peter K, ik ga dat maar eens proberen.
mijn tabel heeft elk van de eerder genoemde criteria, dan kan ik daarna select from [naam tabel], [aantal fust] where [naam bloem] etc equels [naam bloem opgegeven] etc, toch?
 
Ward van der Put
Moderator

Ward van der Put

12/11/2015 12:38:27
Quote Anchor link
Begin met het maken van een relationeel datamodel. Gebruik vooral géén aparte databasetabel per bloemsoort. Maak in plaats daarvan bijvoorbeeld:

a. één hoofdtabel voor alle bloemsoorten;
b. één afhankelijke tabel voor de lengten per bloemsoort;
c. één tabel voor de fusten;
d. één tabel voor de aantallen boeketten/bloemen van bloemsoort + lengte per fust.

Voor de inventaris kun je vervolgens twee benaderingen volgen: óf je registreert alleen de onderhanden (actuele) voorraad óf je registreert alle voorraadmutaties (plus en min). De eerste benadering houd de boel klein en snel, maar de tweede verschaft je veel meer nuttige informatie. Je kunt daarmee handige verkoopoverzichten per week en per maand maken en de inkoop verbeteren (omdat je met historische informatie bijvoorbeeld kunt gaan voorspellen wat de kritieke voorraadniveaus zijn en de beste momenten om iets in te kopen).
 
Richard den Ridder

Richard den Ridder

12/11/2015 13:00:38
Quote Anchor link
Ward van der Put op 12/11/2015 12:38:27:
Begin met het maken van een relationeel datamodel. Gebruik vooral géén aparte databasetabel per bloemsoort. Maak in plaats daarvan bijvoorbeeld:

a. één hoofdtabel voor alle bloemsoorten;
b. één afhankelijke tabel voor de lengten per bloemsoort;
c. één tabel voor de fusten;
d. één tabel voor de aantallen boeketten/bloemen van bloemsoort + lengte per fust.

Voor de inventaris kun je vervolgens twee benaderingen volgen: óf je registreert alleen de onderhanden (actuele) voorraad óf je registreert alle voorraadmutaties (plus en min). De eerste benadering houd de boel klein en snel, maar de tweede verschaft je veel meer nuttige informatie. Je kunt daarmee handige verkoopoverzichten per week en per maand maken en de inkoop verbeteren (omdat je met historische informatie bijvoorbeeld kunt gaan voorspellen wat de kritieke voorraadniveaus zijn en de beste momenten om iets in te kopen).


dat tweede is wel de bedoeling dat het moet worden, echter schiet daar vrees ik mijn kennis bij te kort. iemand een goede tutorial toevallig?
 
Ward van der Put
Moderator

Ward van der Put

12/11/2015 13:40:01
Quote Anchor link
Laten we beginen bij het einde. Voor openingstijd komt er een dozijn bloemboeketten van bloemtype 123 binnen. Dan hebben we bijvoorbeeld de volgende voorraadmutatie:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
+------------------+-----------+---------+
| datum_en_tijd    | bloemtype | mutatie |
+------------------+-----------+---------+
| 2015-11-12 08:35 |       123 |      12 |
+------------------+-----------+---------+

Dezelfde ochtend wordt om 10:30 het eerste boeket verkocht:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
+------------------+-----------+---------+
| datum_en_tijd    | bloemtype | mutatie |
+------------------+-----------+---------+
| 2015-11-12 08:35 |       123 |      12 |
| 2015-11-12 10:30 |       123 |      -1 |
+------------------+-----------+---------+

Rond de lunch koopt een tweede klant een bos bloemen van twee boeketten:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
+------------------+-----------+---------+
| datum_en_tijd    | bloemtype | mutatie |
+------------------+-----------+---------+
| 2015-11-12 08:35 |       123 |      12 |
| 2015-11-12 10:30 |       123 |      -1 |
| 2015-11-12 12:45 |       123 |      -2 |
+------------------+-----------+---------+

Je kunt met deze eenvoudige opzet al zien dat we daar later "rijke" informatie uit kunnen halen. We kunnen bijvoorbeeld met SUM() zien dat de huidige voorraad 9 is. En we kunnen met een GROUP BY op de datum zien dat er vandaag 3 x type 123 is verkocht.

Bloemsoorten en bloemtypen hoeven we daarvoor niet voortdurend op te slaan: die komen in een aparte databasetabel met een unieke ID (identifier) als de primaire sleutel:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
+-----------+------------+--------------+
| bloemtype | bloemsoort | lengte_in_cm |
+-----------+------------+--------------+
|       123 | Rode rozen |           30 |
+-----------+------------+--------------+

Je kunt zo'n datamodel later nog op allerlei manieren uitbouwen met extra kolommen en extra tabellen, maar met slechts twee tabelletjes heb je al een redelijk degelijke én werkbare basis gelegd.
Gewijzigd op 12/11/2015 13:41:13 door Ward van der Put
 



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.