Baza danych wypożyczalni filmów dvd

Odpowiedz Nowy wątek
Kuba1989
2010-05-28 16:54
Kuba1989
0

Witam,
Jestem początkującym programistą baz danych i dopiero się uczę. Mam za zadanie w formie ćwiczeniowej wykonanie bazy danych dla wypożyczalni filmów dvd. Ale nie wiem, czy jest to dobrze i gdyby ktoś mógł dać mi jakąś wskazówkę byłbym bardzo wdzięczny. Wiem, że połączenie "WYPOŻYCZENIA" i "PARAGONU" (ID_Paragonu) jest źle tak samo jak "REZERWACJI" i "FILMU" (ID_Rezerwacji).
Ale nie mam pojęcia, jak rozwiązać ten problem.

user image

Pozostało 580 znaków

2010-05-28 17:31
Moderator

Rejestracja: 16 lat temu

Ostatnio: 47 minut temu

0

Wiem ze się czepiam, ale mógłbyś następnym razem zrobić ten diagram w jakimś sensownym programie (MySQL Workbench albo DB Designer, oba darmowe), który generuje znacznie ładniejsze diagramy? ;)
I najlepiej tak żeby te łączenia nie zachodziły na siebie, żeby było czytelniej ;)
tutaj masz przykład czytelniejszego diagramu (chociaż kurze łapki się tam troche popsuły :P)
http://img214.imageshack.us/img214/8091/bazaf.png

Nazywanie tabel "Rejestr" i "Rejestr2" to terroryzm. Wymyśl sensowniejsze nazwy dla tych tabel łącznikowych ;)
Czy ja dobrze widze że Rejest jest dwa razy połączony z Wypożyczeniem? o_O
Paragon i Wypożyczenie to chyba relacja 1:1 ? Chyba ze ktoś płaci na raty...


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2010-05-28 18:38

Rejestracja: 15 lat temu

Ostatnio: 8 lat temu

0

@Shalom

nazwywanie tabel w stylu UslugiZamowienia to tez nie najlepsza metoda, tym bardziej ze nie trzymasz nawet tu normy bo tabela UslugiZamowienia powinna sie nazywac UslugiOfertZamowienia :) itd.

Swoja droga CZEMU ludzie daja projekty z przecinajacymi sie relacjami szczegolnie, ze wystarcza dwa ruchy myszka aby sie tego pozbyc !! A jak to zwieksza czytelnosc.


Pozostało 580 znaków

2010-05-28 19:44

Rejestracja: 9 lat temu

Ostatnio: 9 lat temu

0

Jakie informacje ma zawierać Tabela rezerwacja? jest tam pole data oddania ktore bardzie pasuje do wypożyczenia. Rezerwacja powinna definiować okres rezerwacji.

Tabela Film nie powinna mieć kolumny ID_Rezerwacji. Rezerwacji do jednego filmu może być wiele.
W tabeli Rezerwacja powinien byc klucz obcy do ID_Film.

Wypożyczalnie maja zazwyczaj po kilka egzemplarzy tego samego filmu a twoja baza nie pozwala na zarządzanie ilością. Jeżeli w założeniach masz inaczej to OK jeżeli jednak przeiwdywałeś kilka wpisów do tabeli z filmami to jest to redundancja danych co nie powinno mieć miejsca w akademickich warunkach :D.

Pozostało 580 znaków

Mariusz Jędrzejowski
2010-05-28 19:47
Mariusz Jędrzejowski
0

Tabele rejestr, rejestr2 i paragon są niepotrzebne. Informacje które prawdopodobnie chcesz w nich przechowywać można otrzymać przez zapytania sql z pozostałych tabel.

Pozostało 580 znaków

2010-05-28 21:15
Moderator

Rejestracja: 16 lat temu

Ostatnio: 47 minut temu

0

@reichel nie do końca, bo te nazwy nie określają które tabele są z daną tabelą połączone, tylko określają znaczenie ;) UsługiZamowienia to jest po prostu tabela zawierająca uslugi przypisane do danego zamówienia. Chociaż faktycznie można mylnie odnieść takie wrażenie jakie odniosłeś ;)

@Mariusz Jędrzejowski ciekawy pomysł, ale jak bez tych tabel łącznikowych chcesz uzyskać relację n:m ?


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

2010-05-28 23:46
Moderator

Rejestracja: 11 lat temu

Ostatnio: 3 godziny temu

Lokalizacja: Wrocław

0
Shalom napisał(a)

@Mariusz Jędrzejowski ciekawy pomysł, ale jak bez tych tabel łącznikowych chcesz uzyskać relację n:m ?

Serio nie wiesz jak to zrobić czy po prostu sprawdzasz czy on wie?


"HUMAN BEINGS MAKE LIFE SO INTERESTING. DO YOU KNOW, THAT IN A UNIVERSE SO FULL OF WONDERS, THEY HAVE MANAGED TO INVENT BOREDOM."

Pozostało 580 znaków

2010-05-29 00:23
Moderator

Rejestracja: 16 lat temu

Ostatnio: 47 minut temu

0

Gdybym wiedział to bym nie pytał. Bardzo chętnie się czegoś nauczę, a to jest ciekawe w jaki sposób chcecie to zrobić. Jedyne co mi tutaj przychodzi do głowy to zrobienie dodatkowego pola w stylu "numer pozycji rezerwacji/wypożyczenia" i zrobienie klucza głównego tabeli wypożyczenia złożonego z id_wypożyczenia, id_filmu, id_pozycji (i analogicznie w rezerwacje). Jeśli mówicie o takim rozwiązaniu, to w sumie chętnie poczytałbym argumentów za i przeciw :)
Tym bardziej ze pojawiają się dodatkowe dane w tabelach łącznikowych (przynajmniej w Rejestr2, bo ta cena z Rejestr powinna raczej być przypisana do Filmu) które nie bardzo jest gdzie indziej wcisnąć.
Usunięcie tabeli Paragon jest oczywiste (o czym pisalem wyzej, bo to 1:1).


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

Kuba1989
2010-05-29 11:56
Kuba1989
0

Dziękuję za tak liczne zainteresowania tym tematem :D

Jest to "surowy" obraz, który już wielokrotnie był poprawiany. Głównie chodzi o to, żeby "działało".

Wprowadziłem kilka najważniejszych zmian ale wykładowca znów odesłał z zaznaczeniem błędów. Ma to do siebie, że wskaże błąd ale nie powie jak go poprawić.
Tabela "paragon" została dodana na życzenie wykładowcy, który stwierdził, że jest ona potrzebna...
Może wrzucę poprawiony obraz z wskazanymi błędami

user image

Pozostało 580 znaków

2010-05-29 13:38
Moderator

Rejestracja: 16 lat temu

Ostatnio: 47 minut temu

0

Z tego wynika ze prowadzący sugeruje że jeden paragon może się odnosić do wielu wypożyczeń i to jest logiczne, bo u ciebie "wypożyczenie" odnosi się tylko do jednego filmu.


Masz problem? Pisz na forum, nie do mnie. Nie masz problemów? Kup komputer...

Pozostało 580 znaków

rasert
2010-05-29 14:12
rasert
0

Pola z tabel rejestr można z powodzeniem przerzucić do tabel wypożyczenia i rezerwacje te tabele są nie potrzebne. Będzie trochę więcej rekordów w tabelach wypożyczenia i rezerwacje, ale z ich wstawianiem nie będzie problemu bo wszystkie dane są dostępne w czasie czynności wypożyczania i wstawiania. Należy dążyć w miarę możliwości do zmniejszania ilości tabel dla uproszczenia pracy.

Pozostało 580 znaków

Odpowiedz

1 użytkowników online, w tym zalogowanych: 0, gości: 1, botów: 0