Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [SQL] Projektowanie bazy - problem z nadmiarowością danych
shaughnessy
post 3.01.2011, 13:53:24
Post #1





Grupa: Zarejestrowani
Postów: 1
Pomógł: 0
Dołączył: 2.01.2011

Ostrzeżenie: (0%)
-----


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.

Ten post edytował shaughnessy 3.01.2011, 13:54:12
Go to the top of the page
+Quote Post
nospor
post 3.01.2011, 13:56:55
Post #2





Grupa: Moderatorzy
Postów: 36 557
Pomógł: 6315
Dołączył: 27.12.2004




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


--------------------

"Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista
"Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer

Go to the top of the page
+Quote Post
JoShiMa
post 3.01.2011, 14:17:58
Post #3





Grupa: Zarejestrowani
Postów: 1 374
Pomógł: 149
Dołączył: 1.03.2006

Ostrzeżenie: (0%)
-----


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


--------------------
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Wersja Lo-Fi Aktualny czas: 18.06.2025 - 23:51