Ontwerp van Database

Status
Niet open voor verdere reacties.

Promethean

Gebruiker
Lid geworden
23 jan 2012
Berichten
6
Ik heb de volgende tabellen maar weet nog niet zeker of dit goed genormaliseerd is.

Tabel_Computers
Table_Locatie​
ComputerID
LocatieID​
( Alle hardware informatie )
Verdieping​
ComputerID​

Table_Artikelen
Table_Voorraad​
Soort_Artikel_Nummer
Soort_Artikel​
Omschrijving_Artikel
Aantal​
Locatie​

Nu dacht ik het zo goed te hebben, dit is de eerste keer dat is zoiets maak.
Ik denk ComputerID te koppelen met ComputerID, 1 Computer in een Lokaal ( niet meerdere )

Soort Artikelen Nummer te koppelen met aantal ( 1 soort kan ik meerdere keren hebben)

Graag feedback als ik iets fout doe en bedankt voor de hulp
 
Laatst bewerkt:
Welke velden wil je aan elkaar koppelen? Je tabel Computers heeft een veld ComputerID, maar waarin staat het koppelveld? Je hebt het over lokalen, maar ik zie geen tabel lokalen. Bovendien zou je in de tabel Computers een veld LokaalID moeten hebben die koppelt met de tabel Lokalen. Want, zoals je terecht zegt, één computer kan maar in één lokaal staan, maar een lokaal kan meerdere computers hebben. En waar komt de tabel Artikel in voor?
 
In de Tabel_Computers moet inderdaad LokaalID komen, en LokaalID dan koppelen aan LokaalID in de Tabel_Locatie.
De tabel Artikelen gaat over Artikelen die worden gekocht en er nog zijn op voorraad
 
De taak van de tabel Artikelen snap ik wel, maar ik zie niet hoe je die wilt koppelen. Artikelen worden doorgaans besteld, en gebruikt/verkocht wat mutaties in het veld Aantal met zich meebrengt. Aantal zou dus een eigenschap van een artikel kunnen zijn die je kunt afleiden uit de mutaties. Hoe de mutaties plaatsvinden, zou je in een tabel Mutaties kunnen bijhouden. Bij bestellingen neemt het aantal toe, en bij leveringen neemt het aantal af. Een stukje voorraadbeheer dus!
 
Dus in de tabel_artikelen zou ik aantal moeten hebben, en de artikelen tabel koppelen met een mutatie tabel.

Zou ik de tabel artikelen ook kunnen koppelen aan de voorraad tabel ? Als ik van de tabel voorraad ook een soort mutatie maak.
 
In Artikelen hoef je in beginsel geen veld Aantal te hebben. Eigenlijk hoef je alleen maar gegevens op te slaan die een bepaald artikel (in dit geval) definiëren. Dat zijn bijvoorbeeld Artikelnummer, Artikelnaam en Leverancier. Gegevens die in de tijd dus niet veranderen. De voorraad van een artikel is bij uitstek een wisselend gegeven; de vooraad groeit en krimpt immers continue. Daarmee is Aantal geen artikeleigenschap. En zoals ik al zei: de vooraad kun je herleiden uit je mutatiegeschiedenis. Bij een nieuw artikel begin je met een voorraad 0. Daarna bestel je er 50, en is de voorraad dus 50. Je verkoopt er vervolgens 12, en daarmee is je nieuwe voorraad 38. Allemaal mutatierecords dus, die je opslaat in Voorraadmutaties, of hoe je die tabel ook wilt noemen. Dat je per mutatierecord het ArtikelID opslaat lijkt mij logisch, want je wilt tenslotte weten van welk artikel de voorraad muteert. Het naampje van de tabel is uiteraard niet ter zake doende, zolang voor jou maar duidelijk is wat die tabel doet!
 
Oke dan word de tabel Artikelen met de velden ArtikelNummer , ArtikelNaam , Leverancier en de sleutel artikelnummer.
En dan word er nog een tabel gemaakt genaamd voorraad met ArtikelID en aantal. en Artikelnummer en ArtikelID moet ik dus koppelen.

Zo is het toch ?

Bedankt alvast
 
Helemaal juist!
 
Het is tot zover gelukt alleen ik kan Artikelnummer in de Tabel Artikelen niet koppelen met het veld ArtikelID in de tabel Voorraad.
ArtikelID is mijn sleutel in de Tabel Voorraad en ik denk dat het daar aan ligt, bij het maken van de koppeling geeft hij een foutmelding aan.
 
In je tabel Voorraad zou je een sleutel VoorraadID verwachten. Als je in Voorraad van ArtikelID een sleutel maakt, mag je maar één transactie opslaan per artikel, en dat is uiteraard niet de bedoeling. Je wilt van een artikel meerdere mutaties vastleggen. In de tabel Artikel is Artikel dus wèl een sleutelveld, omdat elk artikel(id) maar één keer voor mag komen. De relatie tussen Artikel (Uniek ArtikelID) en Voorraad (elk artikelID meerdere records) is dus een één-op-veel relatie.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan