Jak stworzyć taką relacje?

0

Witam.

[Osoba]

  • Imie
  • Nazwisko
    -Id

[Pies]

  • Imie
  • Id wlasciciela

[Karta Choroby]
-Id_psa

[Wizyta]
-id_karty_choroby
-data
-informacje

Mam trochę problem, aby w phpmyadmin stworzyć taką relacje. Chodzi mi o to,
aby jedna Osoba mogła mieć wiele psów, a każdy pies jedną kartę choroby, a w karcie choroby - wiele wizyt.

Próbuje tworzyć klucze obce, ale wychodzą mi jakieś błędy. Czy powinienem usunąć dane z BD przed takimi modyfikacjami ? i robić je na pustej bazie?
Ewentualnie jak powinno wyglądać zapytanie, które stworzy mi taką relacje jak wyżej ?

Pozdrawiam

0

Skoro pies może mieć tylko jedną kartę choroby to po co mu robić osobną tabelę? Może id psa połącz od razu z wizytami.

0

A w jaki sposób próbujesz utworzyć te klucze obce?
W twoich tabelkach brak jest unikatowego ID dla każdego rekordu.
(Pies ma tylko imie i Id_właściciela) więc w jaki sposób chcesz połączyć je z [karta choroby] która zawierać ma id_psa?

4

Jaki masz problem? Daj komunikat błędu. Daj też kod sql.
Nie powinno być problemu. Dajesz coś w stylu:

ALTER TABLE Pies
ADD FOREIGN KEY (id_wlasciciela)
REFERENCES Osoba(id)

To że masz dane nie powinno być problemem, co innego jakbyś np. chciał ustawić not null na nullowych kolumnach itp ale samo dodanie kluczy obcych to nie robi.

0

Trochę to trzeba uporządkować...

Tu jest relacja jeden-do-wielu między tabelami Osoba i Pies oraz analogiczna relacja jeden-do-wielu między tabelami Pies i Wizyta.
Nie widzę sensu tworzenia tabeli KartaChoroby, jeśli tam nie ma żadnych danych wspólnych dla wszystkich wizyt oprócz klucza.

  1. Tworzysz tabelę Osoba
  2. Tworzysz tabelę Pies i relację z tabelą Osoba
  3. Tworzysz tabelą Wizyta i relację z tabelą Pies

Osoba
OsobaId --klucz główny, int identity not null
ImieOsoby
Nazwisko

Pies
PiesId --klucz główny, int identity not null
OsobaId --klucz obcy, int null
ImiePsa

Wizyta
WizytaId --klucz główny, int identity not null
PiesId --klucz obcy, int null
DataWizyty
Informacje

0

Dziękuje, właśnie o takie informacje mi chodziło :)
Biorę się za za kod :)

0
Mateo442 napisał(a):

Ewentualnie jak powinno wyglądać zapytanie, które stworzy mi taką relacje jak wyżej ?

Którą relację, bo wypisałeś cztery?

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