Modelo de banco de dados
Você basicamente precisa de um
many-to-many
relação entre Autores e Publicações, uma vez que um autor pode escrever muitas publicações, e uma publicação pode ser escrita por mais de um autor. Isso exige que você tenha 3 tabelas.
- Autor - informações gerais sobre cada autor (sem publishing_id)
- Publicação - informações gerais sobre cada publicação (sem author_id)
- AuthorPublication - colunas
author_id
epublication_id
que são referências a tabelasAuthor
ePublication
.
Dessa forma, você não está vinculando um autor específico a uma publicação, mas pode ter mais deles e a mesma coisa ao contrário.
Notas adicionais
Se você quiser distinguir o papel dos autores em uma publicação específica, você também pode adicionar alguma coluna como
id_role
isso seria uma referência a uma tabela de dicionário informando todas as funções possíveis para um autor. Dessa forma, você pode diferir entre os principais autores, coautores, etc. Dessa forma, você também pode armazenar informações sobre as pessoas que lidam com a tradução do livro, mas talvez você deva alterar a nomenclatura de Author
para algo menos específico. Ordem de apresentação
Você pode garantir uma ordem adequada de seus autores adicionando uma coluna em
AuthorPublication
que você incrementaria separadamente para cada Publication
. Dessa forma, você seria capaz de preservar o pedido conforme necessário.