Diagram ERD - sprawdzenie poprawności

0

Witam,

czy byłby ktoś w stanie sprawdzić diagram i powiedzieć, czy poprawnie jest on połączony?
Z góry bardzo dziękuję za pomoc.

title

1

Chodzi Ci tylko o sprawdzenie poprawnośći ERD czy sensu tego diagramu ;)

  1. Dlaczego recenzja ma jako klucz główny id_dyplomanta ? (nie moze mieć swojego id?, id_pracy_dyplomowej?)
  2. To samo ^^ ale odnośnie obrona ?
  3. komisja pole nazwiska to będą w jednym stringu po przecinku przechowywane (nie lepiej to rozbić)?
  4. 3 razy pole tytuł czym ono się różni w kontekście tabel (recenzja, praca_dyplomowa, obrona)?
  5. Czemu data_recenzji i data_obrony znajduje się w praca_dyplomowa, a nie w swoich tabelach (recenzja, obrona)?
  6. Klucz obcy na komisja w praca_dyplomowa?
  7. Pola nazwiska (z komisja) i data (z recenzja i obrona) to nie są dobre klucze, klucz musi być unikalny

Może to kwestia narzędzia do wizualizacji ale:
Brakuje licznośći w połączeniach chyba że wszystkie to 1:N ale to i tak chyba się inaczej oznaczało w ERD niż strzałka

0
ClassicProgrammer napisał(a):

Chodzi Ci tylko o sprawdzenie poprawnośći ERD czy sensu tego diagramu ;)

  1. Dlaczego recenzja ma jako klucz główny id_dyplomanta ? (nie moze mieć swojego id?, id_pracy_dyplomowej?)
  2. To samo ^^ ale odnośnie obrona ?
  3. komisja pole nazwiska to będą w jednym stringu po przecinku przechowywane (nie lepiej to rozbić)?
  4. 3 razy pole tytuł czym ono się różni w kontekście tabel (recenzja, praca_dyplomowa, obrona)?
  5. Czemu data_recenzji i data_obrony znajduje się w praca_dyplomowa, a nie w swoich tabelach (recenzja, obrona)?
  6. Klucz obcy na komisja w praca_dyplomowa?
  7. Pola nazwiska (z komisja) i data (z recenzja i obrona) to nie są dobre klucze, klucz musi być unikalny

Może to kwestia narzędzia do wizualizacji ale:
Brakuje licznośći w połączeniach chyba że wszystkie to 1:N ale to i tak chyba się inaczej oznaczało w ERD niż strzałka

Generalnie jest to kwestia narzędzia. W IntelliJ przy tworzeniu diagramu z poszczególnych tabel robi się tylko tak jak na obrazku wyżej.
Czy sens połączeń jest zachowany? Jeśli poprawiłbym błędy, które wskazałeś, to czy poprawność kierunków połączeń będzie dobra?

0

title

Troszkę poprawiona wersja (na ile poprawiona to nie wiem, będę starał się na bieżąco eliminować błędy).
Komisja to będzie kilka osób, więc chyba wypisanie po przecinku nie będzie tragicznym wyjściem. Usunąłem tytul z dwóch tabel, ponieważ rzeczywiście oznaczały jedno i to samo (co w tabeli praca_dyplomowa).
Kolumny z datami w praca_dyplomowa chciałbym, aby były brane z tabel recenzja i obrona.

Narzędzie niestety musi takie zostać, aczkolwiek rozchodzi się tu jedynie o poprawność (w tym wypadku kierunku strzałek).

0

Odnośnie kolumn z datami, po 1. daty nie mogą być kluczami, po 2. nie powinny być 'przepisane' (nie ma sensu duplikować danych) jak będziesz je potrzebować to je wyciągniesz z odpowiedniej tabeli, ale patrząc że w obrona i recenzja masz tylko pole z data to te tabele sensu nie mają równie dobrze można je wyrzucić (daty trzymać w praca_dyplomowa).

Trzymanie nazwisk komisji w jednym polu może i nie jest tragicznym wyjściem, ale conajmniej słabym (dobra jest tragiczne), rozbij to serio.

Patrząc że po takim rozbiciu będziesz miał powiedzmy tabele CzłonekKomisji z polami imie, nazwisko (to będzie już 3 tabela z tymi samymi polami to jest mega słabe).
Lepiej będzie zrobić osobną tabele Osoba (imie, naziwsko), do tego powiedzmy tabela Rola (id_osoby, id_pracy_dyplomowej, rola (pole wyboru: promotor, dyplomant, czlonek_komisji)) i tabela praca_dyplomowa.

0
ClassicProgrammer napisał(a):

Odnośnie kolumn z datami, po 1. daty nie mogą być kluczami, po 2. nie powinny być 'przepisane' (nie ma sensu duplikować danych) jak będziesz je potrzebować to je wyciągniesz z odpowiedniej tabeli, ale patrząc że w obrona i recenzja masz tylko pole z data to te tabele sensu nie mają równie dobrze można je wyrzucić (daty trzymać w praca_dyplomowa).

Trzymanie nazwisk komisji w jednym polu może i nie jest tragicznym wyjściem, ale conajmniej słabym (dobra jest tragiczne), rozbij to serio.

Patrząc że po takim rozbiciu będziesz miał powiedzmy tabele CzłonekKomisji z polami imie, nazwisko (to będzie już 3 tabela z tymi samymi polami to jest mega słabe).
Lepiej będzie zrobić osobną tabele Osoba (imie, naziwsko), do tego powiedzmy tabela Rola (id_osoby, id_pracy_dyplomowej, rola (pole wyboru: promotor, dyplomant, czlonek_komisji)) i tabela praca_dyplomowa.

Ogólnie kiepsko jest na tym diagramie przedstawić role, więc zostanę chyba przy kilku tabelach.
Czy przy takim układzie, gdzie komisja rozbita jest na nazwiska, usunięte zostały daty (tylko tak jak wspominałeś w praca_dyplomowa zostały) ten diagram ma prawo istnieć? (zrobiłem prowizoryczny, żeby nie ingerować w swój, póki nie będę miał pewności).

title

0

Jak nie chcesz wyliczeń pakować jako role to możesz do tego zrobić osobną tabele Role co może jest nawet lepszym wyjściem.

Ogólnie po co Ci ten diagram, na jakieś zaliczenie? (sam masz go wymyślić czy na podstawie jakiegoś opisu rzeczywistości) jak tak to spoko, nie czepiam się, tylko osobiście bym takiego czegoś nie przepuścił, i nawet nie chodzi o sens tego konkretnego diagramu ale mam wrażenie że nie łapiesz o co w nich chodzi i wystarczy że ziomek zada Ci 2/3 pytania dlaczego tak zrobiłeś, a nie inaczej i polegniesz.

0
  1. promotorzy, dyplomanci i osoby to powinna być jedna tabela
  2. po co jest tabela obrona? Przecież tam nic nie ma
  3. tak samo tabela recenzja - po co
  4. tabela komisja powinna być tabelą m:n i mieć pola id_praca i id_osoba
  5. pole komisja w praca_dyplomowa jest zbędne

generalnie całość tych danych to są trzy tabele

0

Tak na szybko można jak poniżej podejść do tematu.

praca_dyplomowa.png

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