Modello di database
Fondamentalmente hai bisogno di un many-to-many relazione tra Autori e Pubblicazioni, poiché un autore può scrivere molte pubblicazioni e una pubblicazione può essere scritta da più di un autore.
Ciò richiede che tu abbia 3 tavoli.
- Autore - informazioni generali su ogni autore (senza pubblicazione_id)
- Pubblicazione:informazioni generali su ogni pubblicazione (senza author_id)
- AuthorPublication - colonne
author_idepublication_idche sono riferimenti alle tabelleAuthorePublication.
In questo modo non stai vincolando un autore specifico a una pubblicazione, ma puoi averne di più e la stessa cosa viceversa.
Note aggiuntive
Se desideri distinguere il ruolo degli autori in una pubblicazione particolare, puoi anche aggiungere alcune colonne come id_role sarebbe un riferimento a una tabella del dizionario che indica tutti i ruoli possibili per un autore. In questo modo potresti differire tra gli autori principali, i coautori, ecc. In questo modo potresti anche memorizzare informazioni sulle persone che gestiscono la traduzione del libro, ma forse dovresti cambiare il nome di Author a qualcosa di meno specifico.
Ordine di apparizione
Puoi garantire un corretto ordinamento dei tuoi autori aggiungendo una colonna in AuthorPublication che incrementeresti separatamente per ogni Publication . In questo modo saresti in grado di preservare l'ordine quando ne hai bisogno.