Witam,
Projekt na Zaawansowane Bazy Danych sprawia mi duże problemy. Mógłby ktoś sprawdzić ten schemat ERD? Temat to szpital. Proszę o pomoc ;)
- SCHEMAT.png (102 KB) - ściągnięć: 4055
Witam,
Projekt na Zaawansowane Bazy Danych sprawia mi duże problemy. Mógłby ktoś sprawdzić ten schemat ERD? Temat to szpital. Proszę o pomoc ;)
Po co Ci tabele Pensja i Piętro? Skoro nic tam nie ma oprócz klucza podstawowego?
Sporo błędów widzę na pierwszy rzut oka.
Na dobry początek brakuje tabel asocjacyjnych między kilkoma relacjami.
Jeden lekarz moze meic tylko jedna specjalnosc?
Jeśli potrzebujesz miec id pacjenta jako FK to referencja powinna sie odnosic to tabeli Pacjent a nie dziwnej tabeli Leczenie ktora nie spełnia obecnie swojej roli.
Powiesz mi coś o tabelach asocjacyjnych ( jakis przykład za którym mógłbym podążać)? Co do tabeli Leczenie jest ona zbędna masz rację :) To wstępny zarys a ja jestem zielony, przespałem 2 semestry i teraz mam problemy z bazami danych w każdym kontekście :(
https://pl.wikipedia.org/wiki/Tablica_asocjacyjna
tldr:
Tabela łączy dwie inne tabele. Na przykładzie wymienionego lekarza i specjalności:
Jeden lekarz może mieć więcej specjalności. Tabela asocjacyjna pomiędzy relacjami SPECJALNOSC a LEKARZ będzie posiadała kolumny: lekarz_specjalność(id_lekarz_specjalnosc, id_lekarz, id_specjalność). Wtedy, jeśli lekarz o id 1 jest kardiologiem(id specjalnosci 1) i onkologiem(id specjalnosci 2) w tabeli lekarz_specjalnosc będzie miał dwa rekordy 1,1,1 oraz 1,1,2. W obecnej formie jeden lekarz może mieć tylko jedną specjalność. W Twoim diagramie jest kilka takich przypadków.
Problem z uczelniami i specjalościami: na ss propozycja rozwiązania. W chorobie id lekarza jest po to aby było wiadomo kto leczył pacjenta w danym przypadku. Przebyte_choroby to zarys powiazania wszystkich chorób z pacjentem. Nie mam jednak pojęcia jak to zaimplementować na schemacie.
Tak.
Ale:
Choroba to zła tabela. Lepiej zrób coś w stylu DIAGNOZA do której referuje WIZYTA. Tak mi się wydaje.
Popraw to, przemyśl jeszcze raz, wrzuć diagram i zobaczymy co dalej.
Ps. jak pracujesz na oracle to pomysl o uzywaniu DATA MODELERa do modelowania diagramów.
damianwisnia15 napisał(a):
Problem z uczelniami i specjalościami: na ss propozycja rozwiązania. W chorobie id lekarza jest po to aby było wiadomo kto leczył pacjenta w danym przypadku.
No, ale to Leczenie powinno łączyć Lekarza, Pacjenta i Chorobę. No chyba, że w Twojej przychodni jest oddzielny lekarz od grypy, oddzielny od anginy i oddzielny od rozwolnienia, ale to nierealistyczne.
Przebyte_choroby to zarys powiazania wszystkich chorób z pacjentem. Nie mam jednak pojęcia jak to zaimplementować na schemacie.
Każde leczenie, które będzie przechowywane w Twojej bazie, to będzie przecież "przebyta choroba". Nie rozumiem, czemu chcesz to dodatkowo przechowywać?
Proszę o ponowne sprawdzenie schematu ;) Wprowadziłem wasze rady ale nie jestem pewny czy o to chodziło