Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [SQL] Projektowanie bazy - problem z nadmiarowością danych
Forum PHP.pl > Forum > Przedszkole
shaughnessy
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.
nospor
Cytat
Powtarzają mi się dane w tabeli TITLE_PERSONS
Ze niby jakie?
Struktua wyglada ok, nie licząc nazw pol, ktore są drażniące winksmiley.jpg

No i w TITLE_PERSON, klucz title_person_id jest raczej zbedny. Rolę klucza glownego moze tu pelnic tytul i osoba
JoShiMa
Mądrzej się chyba nie da wymyślić. Nic Ci się nie powtarza. Znaczy nie masz identycznych rekordów. A jak do jednej książki jest kilku autorów, to inaczej się nie da jak poprzez kolka wpisów w tabeli powiązać książka-autor smile.gif Dobrze kombinowałeś, ale teraz to już byś chciał przekombinować smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.