Database-structuur: Graag je mening
Ik ben bezig met een systeem waarmee we op het laboratorium de bereiding van reagentia kunnen opslaan in een logboek.
Ik ben nu bezig de database-structuur vast te leggen, kunnen jullie hierover je mening geven?
Het systeem bevat verschillende testen, vastgelegd in tabel test.
Iedere test bevat een aantal ingrediënten, vastgelegd in tabel ingredient.
Bij iedere bereiding moet worden vastgelegd wanneer en door wie de reagentia is bereid, vastgelegd in tabel bereiding.
Tot slot wordt van ieder ingrediënt per bereiding vastgelegd welk volume gebruikt is, in tabel bereiding_ingredient.
Zie afbeelding voor mijn voorgestelde databasestructuur.
Helaas een gebroken link
Als je echt wilt normaliseren zal je nog even verder moeten denk ik. De tabel ingredient(en) is nu meer dan de ingredienten, het slaat namelijk ook op informatie over bepaalde testen. Dat moet niet. Je test-ingredient relatie is een many-to-many relatie. Daar heb je dus een tabel test(en), ingredienten en een koppeltabel nodig.
Zelfde in feite bij de bereiding(en). Je slaat daar de initialen op van de medewerker, maar beter zou zijn een aparte tabel voor de medewerkers en alleen een link naar die tabel in de bereidingen tabel.
Merk ook op dat in mijn ogen een tabel altijd een naam in meervoud zou moeten hebben. Je slaat niet 1 test op die tabel, maar meerdere.
Gewijzigd op 17/04/2014 18:39:08 door Erwin H
Erwin H op 17/04/2014 18:38:34:
Als je echt wilt normaliseren zal je nog even verder moeten denk ik. De tabel ingredient(en) is nu meer dan de ingredienten, het slaat namelijk ook op informatie over bepaalde testen. Dat moet niet. Je test-ingredient relatie is een many-to-many relatie. Daar heb je dus een tabel test(en), ingredienten en een koppeltabel nodig.
In dit geval niet (als ik het goed begrijp). De ingrediënten zijn uniek voor de test. Het komt niet voor dat een ingrediënt voor meerdere testen worden gebruikt.
De medewerkers staan inderdaad in een aparte tabel, maar hun initialen zijn hier de primairy key en altijd uniek, vandaar dat ik deze ook opsla (en niet bv een id)
Ik zie hem echt niet :o
Tobias Tobias op 17/04/2014 18:57:09:
In dit geval niet (als ik het goed begrijp). De ingrediënten zijn uniek voor de test. Het komt niet voor dat een ingrediënt voor meerdere testen worden gebruikt.
Als dat zo is, ala. Tenzij je twee keer dezelfde test moet gaan uitvoeren natuurlijk...
Tobias Tobias op 17/04/2014 18:57:09:
De medewerkers staan inderdaad in een aparte tabel, maar hun initialen zijn hier de primairy key en altijd uniek, vandaar dat ik deze ook opsla (en niet bv een id)
Lijkt me een zeer gevaarlijke aanname, om te stellen dat er nooit dubbele initialen komen. Daarnaast is een integer ook weer kleiner dan een string, maar dat terzijde.
>>In dit geval niet (als ik het goed begrijp). De ingrediënten zijn uniek voor de test. Het komt niet voor dat een ingrediënt voor meerdere testen worden gebruikt.
Weet je dat zeker?