Prosta baza danych - mysql workbench

0

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

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ę.

https://gyazo.com/377306336e152be6e4934e6761afa597

0
  1. W tabeli pacjenci Pesel już jest unikalnym identyfikatorem i może być kluczem głównym tabeli.
  2. Kod pocztowy uniemożliwia wpisanie '70-231' tutaj mamy ciąg znaków, a nie liczbę. Ja bym dał varchar.
  3. Numer telefonu uniemożliwi wpisanie większego numeru niż 2147483647 czyli 48 500 000 000 już nie wpiszę. Ja bym dał varchar.
  4. Tą tabelę pacjenci-wizyty można zrealizować mając dwie tylko kolumny, które są jednocześnie kluczami obcymi i głównymi.
  5. Data i godzina w tabeli wizyty można dać w jedną - datetime.
  6. 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.
  7. 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):
  1. 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.

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