sql >> Database >  >> RDS >> Mysql

SQL Database met variabel aantal kolommen

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 en publication_id dat zijn verwijzingen naar tabellen Author en Publication .

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.



  1. Hulp nodig bij het optimaliseren van een lat/Lon geo-zoekopdracht voor mysql

  2. R12.2 Online patching gereedheidsrapport

  3. Oracle to_date-functie gebruiken voor datumreeks met milliseconden

  4. Oracle naar Excel - PL/SQL-exportprocedure