Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: baza danych Filmy... pomocy
Forum PHP.pl > Forum > Bazy danych > MySQL
ketjow
Witam!
Mam do stworzenia bazę danych o filmach. Tylko nie wiem jak się do tego zabrać, gdyż jestem początkującym. Jakie tabele powinienem stworzyć?

Proszę o pomoc i pozdrawiam!
Skobi
jak powiązać pola id_Aktora1 i id_aktora2 z tabelą aktor?

  1. SELECT *
  2. FROM filmy f LEFT OUTER JOIN aktor a ON f.id_aktora1=a.id_aktora WHERE tytul_org='kiler';


a co do tabeli Filmy to ja osobiście zrobiłbym inaczej, a mianowicie
co do id_aktor1,2,3,4 wprowadzilbym tabele przejsciowa bo co zrobisz jezeli w filmie bedzie 20 aktorów?

Proponuje:

główna tabela Filmy:
-id_filmu int not null
-tytul_org char(150)
-tytul_pol char(150)
-id_gatunku int(5)
-id_kraju int(5)
-rok int(4)
-czast_trw int(4)
-id_rezysera int(5)
-premiera date

tabela spis_aktor:
id_spis_aktor
id_filmu
id_aktor

tabela Aktor
-id_aktor
-imię
-nazwisko

i wtedy mozesz miec nieograniczona ilosc aktorów
SongoQ
Cytat
jeszcze mam proble z tytułam filmów, gdyż niektóre zawierają znak ' przez to nie mogę ich dopisać do bazy, czy da się coś z tym zrobić?


Przed znakiem ' wstaw \'
ketjow
Więc czy to tak ma wyglądać?
SongoQ
Mysle ze rezyser powinien byc w tabelce z aktorami, bo nieraz jest tak ze rezyser jest jest aktorem. Czasami nawet rezyserem i aktorem w jednym filmie.
ketjow
faktycznie to jest dobry pomysł smile.gif Tylko jak potem zaznaczyć że to jest reżyrer a nie aktor?

Czy będzie dobrze jak stworzę tabelę osoby, oraz listę aktorów i listę reżyserów?

SongoQ
Id rezysera z tabeli filmy laczysz bezposrednia z aktorem.
ketjow
Czyli coś takiego?

Skobi
w zasadzie nie wiem czy to jest potrzebne, ale jakbyś zrobił tak, że tabele:
spis_aktor zamienil na np.:
ludzie_zwiazani_z_filmem (nazwa przykładowa) i mogłaby wyglądać tak:

tabela ludzie_zwiazani_z_filmem
id_ludzie_zwiazani_z_filmem
id_filmu
id_aktora
id_rola


do tego stworzył tabele rola, która mogłaby zawierać role zwiazane z filmem (aktór, scenariusz, reżyser, muzyka), a mianowicie:

tabela rola
id_rola
rola

takie rozwiązanie daje Ci możliwość trzymania wszystkich osób związanych z danym filmem
SongoQ
Tak dokładnie tak.

Taki szczegół w połączeniach(relacjach) 1 filmowi odpowiada wiele Spis_aktor i Spis_gatunek, ale to jest tylko projekt graficzny wiec wszystko jest ok.
ketjow
OK smile.gif

i mam jeszcze jeden problem smile.gif
Gdyż posiadam już bazę danych filmów , lecz wszystko jest w jednej tabeli (czyli: tytul_org, tytul_pol, kraj, gatunek, rok, czas_trw, rezyser, premiera, aktor1, aktor2, aktor3, aktor4)
Mam także stworzone tabele Osoby, gatunek, kraj.
W które już przekopiowałem wszystkie rekordy.

Jak teraz zamienić w tabeli Filmy pole np. Gatunek na id_gatunku?
np sprawdzić w tabeli Gatunek jaki ID przypada danemu gatunkowi i podstawinie go zamiast nazwy w tabeli.


Z krajami i gatunkami jest jeszcze łatwo, gdyż jest ich mało i mogę to zrobić ręcznie przez "zamień" w notatniku smile.gif
Gożej jest z Osobami....

Pomysł z tabelą ludzie_zwiazani_z_filmem wydaje mi się całkiem niezły smile.gif
tylko nie chcę aż tak bardzo rozbudowywać bazy o takie rzeczy jak scenariusz i muzyka...



I jeszcze jedno, jak już będę miał w taki sposób zrobioną bazę to np jeżeli będę chciał wyświetlić id_filmu, tytul_org, tytul_pol i rezysera to użyję zapytania :

  1. SELECT *
  2. FROM Filmy p, Osoby z WHERE p.id_rezysera=z.id_osoby


A jakie będzie zapytanie jeżeli będę chciał uzyskać pełną listę filmów, czyli id_filmu, tytul_org, tytul_pol, kraj, gatunek, rok, czas_trw, rezyser, premiera, aktorzy?
SongoQ
Cytat
A jakie będzie zapytanie jeżeli będę chciał uzyskać pełną listę filmów, czyli id_filmu, tytul_org, tytul_pol, kraj, gatunek, rok, czas_trw, rezyser, premiera, aktorzy?
Tak samo jak masz zapytanie powyzej tylko dolozysz wiecej tabel i dasz wiecej warunkow.
ketjow
winksmiley.jpg
SongoQ
Cytat
bo jeśli np tak chcę wyświetlić to wyświetla mi jeden film 2 razy z różnymi gatunkami


A jak bys chcial?
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-2024 Invision Power Services, Inc.