Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Budowanie struktury bazy od podstaw..., Wprowadzanie zmian w starej strukturze
primo
post
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
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: 17.10.2025 - 05:54