Diagram bazy o piłkarzach - projekt zaliczeniowy

0

Witam. Do końca semestru mam wykonać projekt bazy danych. Moim tematem są piłkarze reprezentacji Polski. Celem jest stworzenie minimum 4 tabel i relacji wiele do wielu stworzonej za pomocą tabeli pomocniczej i dwóch relacji jeden do wielu. Stworzyłem właśnie diagram ale nie wiem jak sobie poradziłem z tymi relacjami, według mnie są trochę na siłę, ale nie potrafiłem wymyślić nic lepszego. Bardzo proszę o opinie i wskazówki, z góry dziękuję.

1

Witam, ja bym zrobił takie tabele
zawodnik,karta zawodnika,klub,liga,reprezentacja,
relacje:
zawodnik:1-1:karta zawodnika
zawodnik:-1:reprezentacja
zawodnik:
-:klub
klub:
-1:liga

0

relacje:
zawodnik:1-1:karta zawodnika (zazwyczaj unika się powiązań 1-1)
zawodnik:-1:reprezentacja
zawodnik:
-1:klub (1 zawodnik może być w jednym momencie w jednym klubie, wielu zawodników może być w tym samym klubie)
klub:*-1:liga (1 klub może być w jednym momencie w jednej lidze, wiele klubów jest w jednej lidze)
mozna dodatkowo dać historię:
zawodnik 1 - * historia_zawodnika
historia_zawodnika * -1 hzawodnik_klub 1 - * klub (nie używając * - *)
historia zawodnika * - 1 hzawodnik_rep 1 - * reprezentacja
historia_klubu * - 1 hklub_liga 1 - * liga

0
Złoty Lew napisał(a):

zawodnik:1-1:karta zawodnika (zazwyczaj unika się powiązań 1-1)

Bzdura, to powiązanie jak każde inne.

Bardzo ładnie opisałeś krotności powiązań, tylko czemu nazywasz je relacjami?

I ta historia_zawodnika moim zdaniem jest sztuczna. Wszystko można trzymać w zawodnik -1 zawodnik_klub (id_zawodnika, id_klubu, data_rozpoczecia, data_zakonczenia) 1- klub.

0

Bardzo ładnie opisałeś krotności powiązań, tylko czemu nazywasz je relacjami?

Bo to są relacje?!

Złoty Lew napisał(a) 28 minut temu:
zawodnik:1-1:karta zawodnika (zazwyczaj unika się powiązań 1-1)

Bzdura, to powiązanie jak każde inne.

Po co tworzyć powiązania 1-1? przecież można to umieścić wszystko w jednej tabeli

I ta historia_zawodnika moim zdaniem jest sztuczna. Wszystko można trzymać w zawodnik -1 zawodnik_klub (id_zawodnika, id_klubu, data_rozpoczecia, data_zakonczenia) 1- klub.

Z tym się zgodzę, poniosło mnie, powinno być:

zawodnik * -1 hzawodnik_klub 1 - * klub (nie używając * - *)
zawodnik * - 1 hzawodnik_rep 1 - * reprezentacja
klub * - 1 hklub_liga 1 - * liga

0
Złoty Lew napisał(a):

Bardzo ładnie opisałeś krotności powiązań, tylko czemu nazywasz je relacjami?

Bo to są relacje?!

SAM ZEŚ JEST RELACJA!!!! Nie wiem ale będę się mądrzył...

Złoty Lew napisał(a) 28 minut temu:
zawodnik:1-1:karta zawodnika (zazwyczaj unika się powiązań 1-1)

Bzdura, to powiązanie jak każde inne.

Po co tworzyć powiązania 1-1? przecież można to umieścić wszystko w jednej tabeli

idźmy krok dalej - po co w ogóle tworzyć kilka tabel - przecież wszystko można trzymać w jednej

0

No wydaję mi się że jeśli napiszę 1 - * to każdy zrozumie że chodzi o relacje jeden do wielu...
Mnie uczono że jeden-do-jeden można składać do jednej tabeli jeżeli to w niczym nie przeszkadza...

0
Złoty Lew napisał(a):

Bo to są relacje?!

Nie, nie są. To są związki lub powiązania. Relacje to tabele:
http://osilek.mimuw.edu.pl/index.php?title=Logika_i_teoria_mnogo%C5%9Bci/Wyk%C5%82ad_5:_Para_uporz%C4%85dkowana%2C_iloczyn_kartezja%C5%84ski%2C_relacje%2C_domykanie_relacji%2C_relacja_r%C3%B3wnowa%C5%BCno%C5%9Bci%2C_rozk%C5%82ady_zbior%C3%B3w
http://osilek.mimuw.edu.pl/index.php?title=BD-2st-1.2-w02.tresc-1.1-Slajd5
http://pl.wikipedia.org/wiki/Model_relacyjny
http://pl.wikipedia.org/wiki/Diagram_zwi%C4%85zk%C3%B3w_encji

Po co tworzyć powiązania 1-1? przecież można to umieścić wszystko w jednej tabeli

Jeśli koncepcyjnie to coś innego (np. adres klienta) albo jakieś dane mają sens tylko dla części encji (np. Klient ma login in hasło jak Użytkownik, ale też NIP i nazwę), to jak najbardziej 1:1 ma sens.

0

1:1 ma też sens jeśli jeden zestaw danych jest pobierany często a drugi rzadko. Na przykład często wyświetlamy gdzieś listę nazwisk zawodników, ale kartę zawodnika i jego zdjęcie wyświetlamy tylko raz na jakiś czas. Upraszcza to pracę SZBD bo może sobie robić ładne read-ahead albo w ogóle czytać całą tabelę, a nie czytać po kawałku / czytać wszystko i odrzucać 90% danych.

0

Widzę, że rozpoczęła się tu dość ciekawa dyskusja, dzięki za wszelkie porady. Dziś po konsultacji z wykładowcą zmieniłem lekko mój diagram, usunąłem tabelę klub, cała baza jest o reprezentacji więc wystarczy informacja w jakim kto gra klubie, którą umieściłem w karcie zawodnika. Relację wiele do wielu zrobiłem między Reprezentacją a Spotkaniem, używając do tego tabeli pomocniczej Skład i dwóch relacji jeden do wielu. Co o tym myślicie? :) Chyba lepiej co?

0

Nie mogę zedytować posta jako gośc, a nie dodałem zdjęcia :/

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