Model bazy danych
Zasadniczo potrzebujesz many-to-many
związek między autorami a publikacjami, ponieważ jeden autor może napisać wiele publikacji, a jedna publikacja może być napisana przez więcej niż jednego autora.
Wymaga to posiadania 3 stołów.
- Autor - ogólne informacje o każdym autorze (bez identyfikatora publikacji)
- Publikacja - ogólne informacje o każdej publikacji (bez author_id)
- Publikacja autora — kolumny
author_id
ipublication_id
które są odniesieniami do tabelAuthor
iPublication
.
W ten sposób nie wiążesz konkretnego autora z publikacją, ale możesz mieć ich więcej i to samo na odwrót.
Dodatkowe uwagi
Jeśli chcesz rozróżnić rolę autorów w konkretnej publikacji, możesz również dodać kolumnę typu id_role
byłoby to odniesienie do tabeli słownikowej zawierającej wszystkie możliwe role autora. W ten sposób możesz różnić się między wiodącymi autorami, współautorami itp. W ten sposób możesz również przechowywać informacje o osobach zajmujących się tłumaczeniem książki, ale być może powinieneś wtedy zmienić nazewnictwo Author
do czegoś mniej konkretnego.
Kolejność pojawiania się
Możesz zapewnić odpowiednią kolejność swoich autorów, dodając kolumnę w AuthorPublication
które należy zwiększyć oddzielnie dla każdej Publication
. W ten sposób będziesz w stanie zachować kolejność zgodnie z potrzebami.