Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Banco de dados SQL com número variável de colunas

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 e publication_id que são referências a tabelas Author e Publication .

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.