![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 254 Pomógł: 0 Dołączył: 30.12.2003 Skąd: Strzegom Ostrzeżenie: (0%) ![]() ![]() |
Witam,
chcę przebudować gruntownie całą stronkę. W związku z tym rozpocząłem naukę obiektówki, no ale aby przejść do tego to najpierw zalecono mi przebudowe starej struktury bazy na bardziej odpowiednią. Oto stara struktura do przerobienia: Struktura tabeli dla `filmy` -- CREATE TABLE `filmy` ( `id` int(10) unsigned NOT NULL auto_increment, `tytul_pl` varchar(50) NOT NULL default '', `tytul_ang` varchar(50) NOT NULL default '', `dlugosc` varchar(4) NOT NULL default '', `okladka` varchar(60) NOT NULL default '', `aktorzy` varchar(99) NOT NULL default '', `rezyseria` varchar(25) NOT NULL default '', `recenzja` text NOT NULL, `nosnik_dvd` char(3) NOT NULL default '', `nosnik_vhs` char(3) NOT NULL default '', `gatunek` varchar(15) NOT NULL default '', `rok_prod` year(4) NOT NULL default '0000', `lektor` char(3) NOT NULL default '', UNIQUE KEY `id` (`id`), UNIQUE KEY `tytul_pl_3` (`tytul_pl`), UNIQUE KEY `tytul_ang` (`tytul_ang`), KEY `tytul_pl` (`tytul_pl`,`tytul_ang`,`rezyseria`), KEY `gatunek` (`gatunek`), FULLTEXT KEY `tytul_pl_2` (`tytul_pl`,`tytul_ang`,`recenzja`) ) TYPE=MyISAM AUTO_INCREMENT=499 ; jak zapewnie widzicie wszystko jak leci jest w jednej tabeli. Przerobiłem to tak: -- Struktura tabeli dla `aktorzy` CREATE TABLE `aktorzy` ( `aktorID` int(10) unsigned NOT NULL auto_increment, `filmID` int(10) unsigned NOT NULL default '0', `imie_nazwisko` varchar(50) NOT NULL default '', `dane_aktor` text NOT NULL, PRIMARY KEY (`aktorID`), KEY `imie_nazwisko` (`imie_nazwisko`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- Struktura tabeli dla `filmy` CREATE TABLE `filmy` ( `filmID` int(10) unsigned NOT NULL auto_increment, `tytul_pl` varchar(200) default NULL, `tytul_ang` varchar(200) default NULL, `czas_trwania` varchar(5) NOT NULL default '', `rok_prod` year(4) NOT NULL default '0000', `data_dodania` datetime NOT NULL default '0000-00-00 00:00:00', PRIMARY KEY (`filmID`), UNIQUE KEY `filmID` (`filmID`), KEY `tytul_pl` (`tytul_pl`,`tytul_ang`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; -- -------------------------------------------------------- -- Struktura tabeli dla `nosnik` CREATE TABLE `nosnik` ( `filmID` int(10) unsigned NOT NULL default '0', `dvd` char(3) NOT NULL default '', `vhs` char(3) NOT NULL default '' ) TYPE=MyISAM; -- -------------------------------------------------------- -- Struktura tabeli dla `recenzje` CREATE TABLE `recenzje` ( `filmID` int(10) unsigned NOT NULL default '0', `rezenzja` text NOT NULL ) TYPE=MyISAM; -- -------------------------------------------------------- -- Struktura tabeli dla `rezyserzy` CREATE TABLE `rezyserzy` ( `rezyserID` int(10) unsigned NOT NULL auto_increment, `filmID` int(10) unsigned NOT NULL default '0', `imie_nazwisko` varchar(100) NOT NULL default '', `dane_rezyser` text NOT NULL, UNIQUE KEY `rezyserID` (`rezyserID`), KEY `imie_nazwisko` (`imie_nazwisko`) ) TYPE=MyISAM AUTO_INCREMENT=1 ; Z jednej tabeli zrobiłem ich kilka. Pytanie moje czy coś byście dodali, zmienili (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) Oraz czy poprzez index filmID mogę powiązywać zależności między tabelami (IMG:http://forum.php.pl/style_emoticons/default/questionmark.gif) W sumie w każdej tabeli zastosowałem klucz obcy w postaci filmID Pytanie do tabeli nosnik. Jeżeli mam film tylko na dvd to wpis w tabeli daję "tak", a jak nie mam tego na vhs to wpisuję "nie" i tak dokonuję podziału i wyciągnięcia danych. Podpowiedźcie jakieś lepsze rozwiązanie. pozdrawiam i czekam na sugestie |
|
|
![]() ![]() |
![]() |
Aktualny czas: 17.10.2025 - 05:54 |