Hallo,

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.
Het plaatje is hier prima te zien.

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.
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)
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 Chrome krijg je de eerste wel te zien, in IE niet, de laatste in allebei.

>>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?

Reageren