Zo nu bots ik tegen het laatste probleem van mijn project! ;) Ik hoop echt dat jullie me hier nog ff mee willen helpen!! :) Ik zal het zo goed mogelijk proberen uit te leggen want het is volgens mij een lastige.. ;)

Ik heb dus 1 tabel die de voorraad bijhoud. meer niet..

die ziet er als volgt uit

+++++++++++++++++++++++++++++++++
+ .Productgroep.|.leveranc.|.artID.|.locatieID.|aant
+++++++++++++++++++++++++++++++++
||..Alcatel..........|Ascom.....|Omni..|......S14...|...4..
------------------------------------------------------------

Nouja ik ga niet de hele tabel overtikken.. ;) maar je ziet hier dus 5 velden in totaal waarvan het veld AANT geupdate moet worden. Dus er word bijv als productgroep geselecteerd : Alcatel
Leverancier geselecteerd: Ascom
artID : omni
LocatieID: S14

Dan moet hij bij het aantal dat er al staat weer extra opgeteld worden.

Nu is het aantal 4. Maar als er ingeboektt word over moet hij het aantal dat ingevuld word opgeteld worden.. en niet een heel nieuwe rij aanmaken zoals hij nu doet dan krijg je dus 2 rijen met dezelfde gegevens en da's niet de bedoeling.. ;)

Ik hoop dat dit duidelijk is... en dit is ook mijn laatste probleem voor dit project voorlopig:)

Ik dank jullie hartelijk!:D
jah
om varchars moeten quote's :P
plaatsen die hap :-)
Ja, volgende vraag, waarom heb je voor een ID een varchar veld nodig :s
sowieso is CHAR sneller, maar gebruik gewoon INT, is nog sneller, en je weet zeker dat er geen gekke dingen in komen, omdat je dan een leuke fout krijgt zoals nu :P
in de artID staan geen integers maar productnamen... :) dus INT kan dan toch niet ? :)
Michel schreef op 23.05.2006 13:03
in de artID staan geen integers maar productnamen... :) dus INT kan dan toch niet ? :)
Productnamen? Ik had hier het id (nummer) verwacht van het id dat je gebruikt in de tabel 'producten'. Dat is namelijk een tabel die ik eveneens verwacht in je databasemodel.

Maar eerlijk gezegd krijg ik een beetje het gevoel dat het hele databasemodel eens tegen het licht moet worden gehouden. Heb je wel aan normalisatie e.d. gedaan?

Edit: typo
Als ik wist wat Normalisatie was... dan had ik het gedaan.. Op school gaan ze dat volgend schooljaar pas behandelen :\
Okeej... ik heb hier ff de tut over basis normaliseren gelezen.. en dan kan je idd niet zomaar ID's er tussen rossen.. :P

ik heb ze nu ff een logischere naam gegeven

artikelvpr
en
locatievpr

vpr staat voor van product

Kan iemand me nu misschien proberen verder te helpen met de querie? Hij schrijft niets weg in de database en geeft een error aan zoals ik die in en paar postst terug had neergeschreven :) mvg. michel
Helemaal niemand meer :P?
Michel schreef op 23.05.2006 14:54
Als ik wist wat Normalisatie was... dan had ik het gedaan.. Op school gaan ze dat volgend schooljaar pas behandelen :

verwacht er maar niet teveel van op school
spreek uit ervaring.. :)
Ja ik heb hier al een korte tut gelezen over het hele normaliseren! :) maar volgens mij is mijn database dat nu wel aardig ;) Ik moet alleen deze functie nog voor elkaar krijgen en dan ben ik bijna klaar met mijn project :D

Kvind het alleen jammer datk nog zon beginner ben en het nog lastig vind om dingen zelf uit te vogelen enzow... :(

k heb dus 1 tabel die de voorraad bijhoud. meer niet..

die ziet er als volgt uit

+++++++++++++++++++++++++++++++++
+ .Productgroep.|.leveranc.|.artID.|.locatieID.|aant
+++++++++++++++++++++++++++++++++
||..Alcatel..........|Ascom.....|Omni..|......S14...|...4..
------------------------------------------------------------

volgens mij is mijn database dat nu wel aardig

Het feit dat jij de naam van de productgroep en de naam van de leverancier opslaat in deze tabel, geeft al aan dat het alles behalve een aardig datamodel is. Ascom is namelijk wat anders dan Asscom of ascomm. Dit soort fouten zijn zo gemaakt, maar mogen gewoon niet voor kunnen komen. Leg gewoon een verband met de tabel 'leveranciers' door het id van de leverancier in de tabel 'voorraad op te slaan'. Al is ook dit discutabel. Wat heeft een leverancier met de voorraad te maken? Een leveranvier hoort bij een bepaalt product (gelijke producten van verschillende leveranciers zullen verschillende productnummers hebben). Het is dus niet nodig om deze informatie nogmaals op te slaan in de tabel 'voorraad'. Dit geldt ook voor de productgroep. Dit is wederom een eigenschap van het product, niet van de voorraad.

Verder hoop ik dat je er rekening mee houdt, dat een voorraad op meerdere locaties kan liggen.

Maar het belangrijkste is dat je gaat normaliseren. Dat is niet iets dat je zo even onder de knie krijgt, daarvoor moet je echt de handen uit de mouwen steken. Daar zullen heel wat uurtjes in gaan zitten, wil je daar een beetje handigheid in krijgen.

Tip: Zodra je informatie dubbel opslaat, weet je voor 95% zeker dat je fout bezig bent. Een naam die 2x voorkomt, vrijwel altijd fout. Een belangrijke uitzondering zijn facturen. Een prijs kan wijzigen, maar een prijs die op een factuur staat, kan niet meer wijzigen, het artikel is al verkocht en de deur uit. Die zul je dus apart moeten opslaan. Dit geldt overigens voor meerdere gegevens die je op facturen zet. Inclusief het btw%, dat kan ook wijzigen.

Reageren