[PowerDesigner] Model bazy do sprawdzenia

0

Podobnie jak kolega Misiasty kilka tematow nizej dostalem do zrobienia projekt:

Opis projektu:
Aplikacja ma służyć pracownikom PZPN oraz wszystkim kibicom interesującym się polską piłką nożną. Powinna być ona zrealizowana:
•   za dopomogą języka programowania obiektowego (np. C++, Java)
•   przy pomocy technologii ASP i umieszczona na serwerze WWW.
Powinna ona realizować następujące funkcje:
•   Wprowadzanie przez upoważnioną osobę wyników spotkań oraz modyfikację drużyn grających oraz zmiany ich składów (piłkarzy).
•   Przeglądanie przez fanów wyników kolejek oraz aktualnego stanu ligi tzn. ranking drużyn (punkty, bramki, ilość rozegranych spotkań).
•   Tworzenie rankingu króla strzelców.
•   Możliwość tworzenia okresowych raportów na temat pracy sędziów np. ilość prowadzonych spotkań.
Odpowiedzialna za bazę osoba powinna mieć możliwość edytowania odpowiednich tabel. Fani powinni za pomocą tej aplikacji przeglądać wyniki kolejek, ranking ligi czy wyniki konkursu na króla strzelców. Pracownik PZPN powinien mieć możliwość sporządzania raportów na temat pracy sędziów.  

Baza powinna zawierać nie mniej niż 5 tabel, np.:
•   SPOTKANIA
•   DRUŻUNY
•   PIŁKARZE
•   TRENERZY
•   SĘDZIOWIE
Projekt może zawierać więcej tabel, np. tabelę SPOTKANIA można rozszerzyć o tabele SEZON itp.

Chcialbym aby ktos sprawdzil czy moja baza jest dobra :) tzn polaczenia itp :)

user image
i po stworzeniu MySQL 5
user image

Jeszcze jedno pytanie gdzie w PowerDesigner'ze ustawic autoinkrementacje?
P.S. pozdro Misiek :)

0

Zawodnicy

  1. ID_D niepotrzebne
  2. zdobyte_gole, minuty_na_boisku powinny wynika z z tabeli rozegrane mecze

Strzelcy
zbędna

Drużyny

  1. pozycja_w_tabeli, w-poprzednim_sezonie, gole_zyskane, stracone, zwyciestwa, remisy, porazki, punkty to zależy od wyników meczy - powinno być wyliczane tak jak zdobyte_gole i minuty_na_boisku
  2. trener masz w tabeli trenerzy
  3. id_st - jeśli nie określa to stadionu, który jest drużyny to do wyrzucenia

Trenerzy

  1. data_objecia_posady do wywalenia

Terminarz
przyjmijmy, że określa kto, z kim, kiedy, gdzie i tyle

  1. wynik out
  2. dodać gospodarze, id_st

dodatkowe tabele
zawodnik_druzyna (nie wiem jak to nazwac)
id_zawodnika
id_druzyny
od_kiedy
do_kiedy

sędziowie (tak to się pisze?)
id
imie
nazwisko
...

Mecze
id_meczu
id_terminu
id_sedziego_glownego
id_sedziego_pom_1
id_sedziego_pom_2 (przyjmujemy, że zawsze jest 3 sedziów)

sklady (skład w danym meczu - od kiedy do kiedy na boisku, czy w składzie podstawowym, na jakiej pozycji)
id_skladu
id_meczu
id_druzyny
id_zawodnika
data_wejscia
data_zejscia
podstawowy
pozycja

gole (kto, kiedy i komu strzelił bramkę)
id_gola
id_meczu
id_druzyny
id_zawodnika
czas
samobujcza

kartki
id_kartki
id_meczu
id_druzyny
id_zawodnika
czas
typ_kartki

generalnie musiałbyś to ładnie do kupy zebrać i pokazać raz jeszcze bo się mogłem poplątać

0

na razie bez relacji, dzis w nocy postaram sie sam zrobic "polaczenia miedzy tabelami". Prosze o sprawdzenie :)
user image

0

nie podoba mi sie ta pajenczynka ... no ale moze tak powinno byc?? user image

0
  1. nie stadion ma drużynę tylko drużyna sadione
  2. po co tabela rozegrane_mecze??
  3. w terminarz ma być id_gospodarze i id_goscie (oba wskazują na drużyny)
  4. teraz widać, że w tabelach gole, kartki niepotrzebne są id_druzyny

popracuj nad relacjami bo 1-1 to nie będzie raczej nigdzie

0
Misiekd napisał(a)
  1. nie stadion ma drużynę tylko drużyna sadione
  2. po co tabela rozegrane_mecze??
  3. w terminarz ma być id_gospodarze i id_goscie (oba wskazują na drużyny)
  4. teraz widać, że w tabelach gole, kartki niepotrzebne są id_druzyny

popracuj nad relacjami bo 1-1 to nie będzie raczej nigdzie

  1. Nie rozumiem ....
  2. Zapomnialem o tabeli gole dlatego tamta stwozylem
  3. Wydaje mi sie czy chodzi tylko o nazewnictwo ... no i o rodzaj pola jesli sie myle to mnie popraw
  4. Bo ID_Druzyny wynika z ID_zawodnika dobrze rzumiem?

Najnowsze wypociny .. lepiej jest?? user image

0
  1. w drużynie powinno być id_stadion
  2. po to masz tabelkę sedziowie aby w innych tabelach się do niej odwoływać po id a nie po (jak pewnie chciałeś) nazwie sędziego, która btw nie jest unikalna
  3. tak
0
  1. zmienione, co prawda nie widze zbytnio wiekszej roznicy, ale to jadopiero zaczynam z bazami
  2. chyba chodzi o id gospodarza i goscia ale tak czy owak wiem zeby sie odwolywac po ID
    user image
    Zgadza sie? Moge probowac tworzyc klucze?:) Jeszcze chcialbym wiedziec gdzie w powerdesignerze ustawia sie autoinkrementacje :) bo mi sie nie chce potem w phpmydmin'ie przestawiac :)
0

pomiędzy trenerzy a drużyna jest powiązanie n-m bo a) drużyna może mieć wielu trenerów b) jeden trener może trenować różne drużyny (niekoniecznie w tym samym czasie) więc tu przydał by się tabela, np

trenuje
#id_trenera
#id_druzyny
od
do

to jest dokłądnie tak samo jak z zawodnikami i drużyną

co do relacji to

  1. w każdej tabelce powinieneś mieć klucz główny. Poza tabelkami kariera i trenuje tabelki mają klucz główny sztuczny, tzn specjalnie w tym celu dodaną kolumnę autoincrement (w rzeczywistych aplikacjach prościej jest korzystać przy wyszukiwaniu/usuwaniu/zmienianiu czy przy składaniu wyniku z kilku tabel z jednego pola typu numeric, które określa jednoznacznie rekord niż z kilku pul czy pola typu string)
  2. klucze obce to wszystkie pola, które mają nazwę id_coś_tam (mówię oczywiście o Twoim schemacie) i tyle też powinieneś mieć relacji do danej tabeli

w karierze i trenuje jeśli pole do jest puste (null) to oznacza, że dana osoba jest zatrudniona w danej drużynie - np jan kowalski, id=1 może mieć takie wpisy w kariera

id_z  id_d  od      do
1      1      12.02  12.03
1      2      15.03  null

co oznacza, że od 12.02 do 12.03 grł w drużynie 1, potem miał przerwę do 15.03 i teraz gra w drużynie 2. Jeśli nauczyciel każe Ci pokazać gdzie aktualnie gra jakiś zawodnik to po prostu szukasz rekordów z jego id i z pustym polem do - to taka uwaga

0

Pomiedzy kariera a duzyny nie powinno byc tez polaczenie many-many? i wtdy jak tworze tablele trenuje to tez z druzyna many-many i z trenerzy many-many??
Wiem ze latwiej rozpoznawac po cyferce niz stringu :) tylko wiesz moze gdzie w tym powerdesignerze ustawic taka opcje zeby mi kod SQL ktory wyeneruje Od razu zrobil autoincremetnacje?

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