właśnie skończyłem projekt w SQL'u na studia. Niektórym trafiają się tylko tacy panowie prowadzący, którzy traktują człowieka jak psa. W moim przypadku na szczęscie jest dobrze, choć śmierdząco sprytnie - mam motywatora podważającego umiejętności studenta. Za wykonany projekt, który "działa" ocena 3.0. Jeśli myślisz, że zasługujesz na więcej pełna rozmowa na temat zaprojektowania bazy, użytych funkcji, itd ;]
Posiadam małe doświadczenie w projektowaniu baz, więc mam wątpliwości czy aby dobrze zaplanowałem tą bazę - wypożyczalnia video.
Poniżej zrzut ekranu relacji:
http://www.fotosik.pl/pokaz_obrazek/pelny/...258ce9085b.html
Pytanie 1
Jeśli klient zrezygnuje z usług wypożyczalni (zechce wypisać się z niej) wpisuję do tabeli klient_end taką informację.
Czy to dobry sposób?
- czy może powinienem utworzyć identyczną tabelę jak klient (+ pole data_rezygnacji), która archiwizowałaby starych klientów?
- czy może pole data_rezygnacji powinienem umieścić w tabeli klient? w końcu to tylko jedno pole. No ale może tabela może przechowywać niepotrzebne dane starych klientów..
To samo dotyczyłoby pracownika, który zrezygnuje z pracy.
Pytanie 2
Nie wiem czy stworzenie tabeli promocja w ten sposób jest efektywnym rozwiązaniem?
Pytanie 3
Tabelę film tworzę w następujący sposób:
Kod
CREATE TABLE `film` (
`id_film` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`tytul` VARCHAR(100) NOT NULL,
`tytul_oryg` VARCHAR(100) NOT NULL,
`data_prod` YEAR NOT NULL,
`czas_trwania` SMALLINT(3) NOT NULL,
`id_jezyk` SMALLINT(3) NOT NULL,
`id_nosnik` TINYINT(1) NOT NULL,
`cena` FLOAT(3) NOT NULL
) ENGINE=MYISAM;
`id_film` INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
`tytul` VARCHAR(100) NOT NULL,
`tytul_oryg` VARCHAR(100) NOT NULL,
`data_prod` YEAR NOT NULL,
`czas_trwania` SMALLINT(3) NOT NULL,
`id_jezyk` SMALLINT(3) NOT NULL,
`id_nosnik` TINYINT(1) NOT NULL,
`cena` FLOAT(3) NOT NULL
) ENGINE=MYISAM;
Teraz wpisywanie odbywa się w następujący sposób:
Kod
INSERT INTO `film` VALUES(NULL, 'Mechaniczna pomarańcza', 'A Clockwork Orange', '1971', '136', '2', '1', '5.90');
Czy mogę zatem wpisywać do pola id_film wartość NULL?
id_film i tak jest inkrementowane automatycznie, więc nie zawsze będę znał ostatni numer.
Jak się wprowadza wartości w takiej sytuacji?
Z góry dzięki za pomoc

W większości przypadków nauka czegoś nowego jest raczej trudna, ale sql to na prawdę przyjemna sprawa ;]