Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Drzewo SQL
nowy214
post
Post #1





Grupa: Zarejestrowani
Postów: 7
Pomógł: 0
Dołączył: 2.04.2010

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


witam.
Muszę stworzyć bazę danych wyglądającą schematowo tak

czyli mam sobie np.
Powieść która ma tytuł, ta powieść składa się z 3 tomów, każdy z tych tomów ma tytuł, autora i ilość stron.
Każdy tom ma kilka tagów opisujących dany tom.

Nie trzeba, aby wszystko zostało wypisane jednym zapytaniem, ale żeby było możliwość wypisania samych tagów lub tomów.

Da radę jakoś łatwo skonstruować taką bazę danych?
czy trzeba stosować jakieś skombinowane algorytmy, czy dodatki do jeżyka SQL?
proszę o pomoc, bo nie za bardzo wiem jak to zrobić

Ten post edytował nowy214 2.04.2010, 14:45:12
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Mchl
post
Post #2





Grupa: Zarejestrowani
Postów: 855
Pomógł: 145
Dołączył: 17.07.2008
Skąd: High Memory Area

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


Normalizacja to podstawa przy projektowaniu baz danych. Bez zrozumienia przynajmniej jej podstaw, nie zabieraj się nawet za projektowanie bazy, bo sam siebie wyprowadzisz na manowce i zniechęcisz się do dalszej pracy.

Przykład normalizacji z twojego projektu:

"Powieść która ma tytuł, ta powieść składa się z 3 tomów, każdy z tych tomów ma tytuł, autora i ilość stron"

Mamy tutaj następujące obiekty:
powieść
tom(powieści)

i cechy:
tytuł(powieści)
tytuł(tomu)
ilość stron
autor <---- czy to na pewno cecha? a może jednak obiekt?

----
tak więc wypadałoby zrobić następujące tabele:

autor: autor_id, imie, nazwisko
powiesc: powiesc_id, tytul
tom_powiesci: tom_powiesci_id, powiesc_id, autor_id, tytul, iloscStron

Pola *_id w kursywie, to klucze główne tych tabel. W sposób jednoznaczny określają rekord w danej tabeli. Czyli jak na przykład raz wprowadzisz do tabeli autor Marka Twaina, i baza przypisze mu autor_id = 1, to od tego momentu wszystkie tomy powieści jego autorstwa mają mieć autor_id=1.
Z przykładowymi danymi wyglądało by to tak

autor: autor_id, imie, nazwisko
1, Mark, Twain
2, Alfred, Szklarski
3, John Richard Reuel, Tolien
...

powiesc: powiesc_id, tytul
1, Tomek w Krainie Kangurów
2, Przygody Tomka Sawyera
3, Władca Pierścieni
4, Hobbit czyli tam i z Powrotem
...

tom_powiesci: tom_powiesci_id, powiesc_id, autor_id, tytul, iloscStron
1, 1, 2, null, 123
2, 2, 1, null, 1529
3, 3, 3, Powrót cienia, 512
4, 3, 3, Druzyna Pierscienia, 1337
5, 4, 3, null, 1234

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

Posty w temacie


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

 



RSS Aktualny czas: 4.10.2025 - 07:23