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 ERD do oceny
- Rejestracja: dni
- Ostatnio: dni
- Postów: 7
- Rejestracja: dni
- Ostatnio: dni
Po co Ci tabele Pensja i Piętro? Skoro nic tam nie ma oprócz klucza podstawowego?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 115
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 7
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 :(
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
A czemu lekarz może mieć tylko jedną uczelnię i specjalność?
I po co w chorobie id lekarza?
Czym są Przebyte_choroby w tabeli Pacjent?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 115
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 7
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 115
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.
- Rejestracja: dni
- Ostatnio: dni
- Lokalizacja: Wrocław
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ć?
- Rejestracja: dni
- Ostatnio: dni
- Postów: 7
Proszę o ponowne sprawdzenie schematu ;) Wprowadziłem wasze rady ale nie jestem pewny czy o to chodziło