Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: SQL projekt - rzuć proszę okiem czy prawidłowy wykonany
Forum PHP.pl > Forum > Bazy danych > MySQL
arczi
Witam,

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;


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 smile.gif
W większości przypadków nauka czegoś nowego jest raczej trudna, ale sql to na prawdę przyjemna sprawa ;]
kwiateusz
1. ja bym wstawił date rezygnacji do tabeli klienta, tak samo z pracownikiem, imo ładniej to wygląda no i nie trzeba robić joina przy wyciąganiu takiej osoby
2. ujdzie bo nie mam lepszego pomysłu
3. null ,0 lub'' obojętnie z racji że to auto_increment to samo sobie uzupełni
arczi
zainteresowanych powyższym problemem odsyłam do wątku http://wss.pl/frmThread.aspx?gid=17&tid=65165
smile.gif
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-2025 Invision Power Services, Inc.