Witajcie,
Zrobiłem prostą bazę danych do aplikacji bazodanowej. Chciałbym o drobną pomoc, ponieważ jeszcze jestem zielony w tym temacie i nadal rozwijam swoje umiejętności. Aktualnie mam 4 tabele, które w diagramie EER chcę połączyć relacjami. Czy to normalne, że po połączeniu tabeli relacją dzieje się coś takiego, jak zaznaczyłem na drugim zdjęciu? Czy typy danych są dobrze zdefiniowane?
0
0
Nie, to nie jest prawidłowa sytuacja. Co więcej - jest to zła sytuacja. Cos musiałeś źle wyklikać. Ale tu ci nie pomogę, bo ja wszystko robię z kodu...
0
Tak wygląda obecnie moja baza. Wiem, nie mam relacji z tabelą zabiegi. Chciałbym się upewnić, czy mam dobre relacje, typy zmiennych, strukturę tabel (klucze główne, klucze obce). Za wszelką pomoc i rady z góry dziękuję.
0
- W tabeli pacjenci Pesel już jest unikalnym identyfikatorem i może być kluczem głównym tabeli.
- Kod pocztowy uniemożliwia wpisanie '70-231' tutaj mamy ciąg znaków, a nie liczbę. Ja bym dał varchar.
- Numer telefonu uniemożliwi wpisanie większego numeru niż 2147483647 czyli 48 500 000 000 już nie wpiszę. Ja bym dał varchar.
- Tą tabelę pacjenci-wizyty można zrealizować mając dwie tylko kolumny, które są jednocześnie kluczami obcymi i głównymi.
- Data i godzina w tabeli wizyty można dać w jedną - datetime.
- Związek pomiędzy diagnoza, a wizyta to 1:1 czy 1:N ? Tu zależnie teoretycznie jedna wizyta to jedna diagnoza - ale np. mamy dwóch lekarzy podczas jednej wizyty to może być relacja 1:N.
- Najważniejsze - wg. Twojej bazy w tej samej wizycie może uczestniczyć wielu pacjentów. Czyli Jacek i Maciek mogą mieć wiele wizyt jednocześnie. Wg mnie zbędna jest relacja N:N pomiędzy pacjentem, a wizytą.
1
mariano901229 napisał(a):
- W tabeli pacjenci Pesel już jest unikalnym identyfikatorem i może być kluczem głównym tabeli.
PESEL niestety nie musi być unikalny. Trzeba pamiętać, że PESEL jest nadawany od dawna i dawno temu zdarzały się pomyłki, więc nie warto zakładać klucza unikalnego na te pole. Tak więc nie można użyć go jako klucza głównego. Z resztą nigdy nie używam naturalnych danych jako klucz główny. Co jeśli ktoś wklepie do systemu dane pacjenta, doda w tabelach połączonych kluczem zewnętrznym inne dane, a następnie zorientuje się, że popełnił literówkę? Jest problem.
Ja osobiście PESEL pakuję w pole typu VARCHAR, łatwiej się na tym operuje np. sprawdzanie poprawności.
1
@rubiikk, masz zamiar dodawać PESELe albo mnożyć kody pocztowe, że robisz z nich liczby, którymi przecież nie są? Numer to ciąg znaków, nigdy liczba, nawet jeśli składa się z samych cyfr.