Databasemodel
Je hebt in principe een many-to-many
. nodig relatie tussen auteurs en publicaties, aangezien één auteur veel publicaties kan schrijven en één publicatie door meer dan één auteur kan worden geschreven.
Hiervoor moet je 3 tafels hebben.
- Auteur - algemene informatie over elke auteur (zonder publicaties_id)
- Publicatie - algemene informatie over elke publicatie (zonder author_id)
- AuteurPublicatie - kolommen
author_id
enpublication_id
dat zijn verwijzingen naar tabellenAuthor
enPublication
.
Zo bind je een bepaalde auteur niet aan een publicatie, maar kun je er meer hebben, en andersom hetzelfde.
Aanvullende opmerkingen
Als u de rol van auteurs in een bepaalde publicatie wilt onderscheiden, kunt u ook een kolom toevoegen, zoals id_role
dat zou een verwijzing zijn naar een woordenboektabel waarin alle mogelijke rollen voor een auteur worden vermeld. Op deze manier zou je kunnen verschillen tussen hoofdauteurs, co-auteurs enz. Op deze manier zou je ook informatie kunnen opslaan over mensen die de vertaling van het boek verwerken, maar misschien moet je dan de naam van Author
veranderen naar iets minder specifieks.
Volgorde van verschijning
U kunt zorgen voor een juiste volgorde van uw auteurs door een kolom toe te voegen in AuthorPublication
die u afzonderlijk zou verhogen voor elke Publication
. Op deze manier zou je de bestelling kunnen bewaren zoals je hem nodig hebt.