Skip to main content

Checklist DB Design

Regels ten aanzien van ERD's

  1. Heeft elke entiteit precies één PK (PrimaryKey)?

  2. Is elke PK uniek, dus kan er maar één van voorkomen?
    (Achternaam kan bijvoorbeeld geen PK zijn, omdat er meer mensen zijn met dezelfde achternaam).
    Tip: meestal zijn PK's int en vaak heten ze gewoon id.

  3. Heeft elke attribuut een datatype?

  4. Telefoonnummer is geen int want dan valt de eerst 0 weg, immers 0612341234 wordt 612341234

  5. Datum is altijd datatype date.

  6. Datum plus tijd is datatype datetime.

  7. De relatie heeft maximaal één 'harkje'. Het harkje staat aan de 'meer' kant. Dus een student 'hoort' bij één klas en bij een klas 'horen' meerdere studenten. Het harkje staat in dit voorbeeld dan aan de student kant.

  8. Bij elk 'harkje' hoort precies één FK. De FK verwijst naar de PK van de table waarmee deze is verbonden.

  9. De PK en FK die bij elkaar horen hebben hetzelde datatype.

  10. int heeft een vaste lengte, het is dus int en niet int(11).

  11. varchar heeft altijd een lengte, dit is de maximaal lengte die kan voorkomen. varchar(5) als plaatsnaam is dus onjuist.

  12. String datatypes zijn er in verschillende vormen in Database-land. De meest gebruikte zijn: char en varchar; char heeft een vaste lengte, varchar heeft een maximale lengte. String bestaat niet in MySQL.

Relaties tussen entiteiten

Een relatie tussen twee entiteiten is vrijwel altijd een 1-op-meer relatie.

Bijvoorbeeld

één les en

Neem student en studie-couch. Welke regel denk je dat van toepassing is?

één studie-coach meer-studenten
eén student meer studie-coaches

OK in dit geval is het dus de eerste regel. Dat betekent dat de meer kant het 'harkje' krijgt. De lijn tussen de twee entiteiten in het ERD heeft dus het harkje aan de meer-kant. Bij het harkje hoort ook de FK.

  één - kant meer - kant
PK één unieke PK één unieke PK
Lijntje geen 'harkje' (alleen streep) 'harkje'
FK geen FK één FK verwijst naar de PK van de één kant

Het ERD wordt dan.

image-1643791334313.png

Beide entiteiten hebben een uniueke PK en FK en harkje staan aan dezelfde kant