Modelo de base de datos
Básicamente necesitas un many-to-many
relación entre Autores y Publicaciones, ya que un autor puede escribir muchas publicaciones, y una publicación puede ser escrita por más de un autor.
Esto requiere que tengas 3 mesas.
- Autor:información general sobre cada autor (sin id_publicaciones)
- Publicación:información general sobre cada publicación (sin author_id)
- AutorPublicación - columnas
author_id
ypublication_id
que son referencias a tablasAuthor
yPublication
.
De esta forma no estás vinculando a un autor específico a una publicación, pero puedes tener más de ellos, y lo mismo al revés.
Notas adicionales
Si desea distinguir el rol de los autores en una publicación en particular, también puede agregar alguna columna como id_role
eso sería una referencia a una tabla de diccionario que indica todos los roles posibles para un autor. De esta manera, podría diferenciar entre autores principales, coautores, etc. De esta manera, también podría almacenar información sobre las personas que manejan la traducción del libro, pero tal vez debería cambiar el nombre de Author
a algo menos específico.
Orden de aparición
Puede garantizar un orden adecuado de sus autores agregando una columna en AuthorPublication
que incrementaría por separado para cada Publication
. De esta forma, podrá conservar el orden según lo necesite.