Witam wszystkich serdecznie na forum.
Próbuję nauczyć się PHP z MySQL ale utknąłem już na poziomie projektowania bazy. Chcę zaprojektować stronę, która będzie służyła mi do oceniania czytanych książek (póki co). Więc głównymi założeniami są:
- baza tytułów
- baza autorów
W chwili obecnej mam to tak skonstruowane:
TITLES:
title_id (INT 11, PK)
title (VARCHAR 30)
title_original (VARCHAR 30)
title_isbn_10 (VARCHAR 10)
title_isbn_13 (VARCHAR 13)
PERSONS:
person_id (INT 11, PK)
person_f_name (VARCHAR 20)
person_l_name (VARCHAR 30)
mam też trzecią tabelę, w której łączę dwie powyższe:
TITLE_PERSON:
title_person_id (INT 11, PK)
title_id (INT 11)
person_id (INT 11)
person_type_id (INT 11)
i czwarta tabela: słownik typów osoby dla danego tytulu. Narazie będę w niej miał 3 wartości: Autor, Tłumacz, Edytor:
PERSON_TYPE:
person_type_id (INT 11, PK)
person_type (VARCHAR 20)
Wyobraziłem sobie to tak, że do każdego tytulu może być podpięta więcej niż jedna osoba (np. dla tytułu "Książka A" podpięta jest "OSOBA A" oraz "OSOBA B". Pierwsza jest autorem, druga tłumaczem. Wstawiam zatem najpierw nowy rekord w TITLES, potem 2 nowe rekordy w PERSONS, na koniec znów 2 nowe rekordy w TITLE_PERSON.
Czy tak skonstruowana baza jest dobrze zrobiona? Powtarzają mi się dane w tabeli TITLE_PERSONS - będą dwa identyczne wpisy do tej samej książki ale różne person_id. Nie iwem jak z tego wybrnąć za bardzo - proszę o pomoc.