Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Powiazanie dwoch tabel
Forum PHP.pl > Forum > Bazy danych > MySQL
MiChaSSs
Hej,
Chcialem zapytac, czy istnieje mozliwosc powiazania kolumny z jednej tabeli relacja z kolumna w innej tabeli i jednoczesnie relacja z kolumna z jeszcze innej tabeli. Cos na zasadzie:

  1. FOREIGN KEY(na co klucz) REFERENCES tabela1(kolumna1) AND tabela2(klumna2)
Jesli tak, to jak to zrobic? Pozdrawiam MD
andycole
http://blog.mwojcik.pl/2009/07/06/mysql-in...-i-klucze-obce/

moze pomoze...

wg mnie po prostu musisz zrobic tak:

  1. FOREIGN KEY (na co klucz) REFERENCES tabela1(kolumna1) AND tabela2(klumna2)
  2. FOREIGN KEY (na co klucz) REFERENCES tabela2(kolumna1) AND tabela3(klumna1)
Ulysess
b.dobrze że jest taki temat bo potrzebuje pomocy a mianowicie. przy tworzeniu konta chciałbym aby user miał dane w paru tabelach (czemu nie w jednej ? ponieważ to około 50 pół) i tutaj pojawia się moje pytanie jak to zrobić questionmark.gif prosił bym o objaśnienie albo zaprezentowanie przykładu..
MiChaSSs
Cytat(andycole @ 16.08.2009, 18:21:45 ) *
http://blog.mwojcik.pl/2009/07/06/mysql-in...-i-klucze-obce/

moze pomoze...

wg mnie po prostu musisz zrobic tak:

[SQL] pobierz, plaintext
  1. FOREIGN KEY (na co klucz) REFERENCES tabela1(kolumna1) AND tabela2(klumna2)
  2. FOREIGN KEY (na co klucz) REFERENCES tabela2(kolumna1) AND tabela3(klumna1)
[SQL] pobierz, plaintext


andycole -> Gdyby podany przeze mnie kod SQL dzialal to przeciez nie zadawalbym pytania na forum tongue.gif a ten kod nie dziala, przedstawilem go tylko dlatego, zeby zaprezentowac o co mi chodzi winksmiley.jpg

Ulysess -> tworzysz tabele i wpisujesz dane. Wszystko znajdziesz w podstawowym kursie do MySQL-a

================================================================================

Cytat(MiChaSSs @ 16.08.2009, 16:10:58 ) *
Hej,
Chcialem zapytac, czy istnieje mozliwosc powiazania kolumny z jednej tabeli relacja z kolumna w innej tabeli i jednoczesnie relacja z kolumna z jeszcze innej tabeli. Cos na zasadzie:

[SQL] pobierz, plaintext
  1. FOREIGN KEY(na co klucz) REFERENCES tabela1(kolumna1) AND tabela2(klumna2)
[SQL] pobierz, plaintext Jesli tak, to jak to zrobic? Pozdrawiam MD


z tego co znalazlem, to nie ma takiej mozliwosci
askone
Hej

Wydaje mi się, że rozwiązaniem Twego problemu będzie zmiana toku rozumowania. Skoro nie można jednej kolumny powiązać z dwoma innymi w różnych tabelach to przecież można powiązać tamte z tą jedną (co mnie osobiście wydaje się bardziej naturalne i chyba zgodne ze standardami projektowania baz danych)

Przykład:
  1. UserTable
  2. IdUser
  3. FirstName
  4. LastName
  5.  
  6. AddressTable
  7. Id
  8. UserId (powiązana z IdUser w tabeli UserTable)
  9. Street
  10. House
  11. City
  12.  
  13. PhoneTable
  14. Id
  15. UserId (powiązana z IdUser w tabeli UserTable)
  16. Prefix
  17. Number


Mam nadzieję, że to Ci pomoże winksmiley.jpg

Pozdrawiam
MiChaSSs
Dziekuje za odpowiedz, ale niestety nie o to mi chodzi. Tabela, w ktorej potrzebowalem zrobic dwa klucze obce bedzie wypelniana z formularza WWW - checkbox-a wygenerowanego wiec nie powinno byc problemu z relacja, ale wolalem, zeby MySQL jeszcze to sprawdzal. Poniewaz nie ma mozliwosci przypisania dwoch kluczy obcych do kolumny zostalo mi tylko rozdzielenie danych na dwie tabele, pozdrawiam MD winksmiley.jpg
askone
Cytat(MiChaSSs @ 24.08.2009, 12:51:24 ) *
Tabela, w ktorej potrzebowalem zrobic dwa klucze obce bedzie wypelniana z formularza WWW - checkbox-a wygenerowanego wiec nie powinno byc problemu z relacja, ale wolalem, zeby MySQL jeszcze to sprawdzal.


Hmm, ciekawe ale nie potrafię sobie tego wyobrazić winksmiley.jpg Jak dotąd nie spotkałem się z koniecznością wiązania jednej kolumny z dwoma innymi tabelami... Jeśli możesz to chętnie zapoznam się z tym Twoim formularzem, może sam się czegoś nauczę, albo znajdę inne podejście do tej sprawy winksmiley.jpg

Pozdro
MiChaSSs
Cytat(fly474 @ 24.08.2009, 12:59:21 ) *
Hmm, ciekawe ale nie potrafię sobie tego wyobrazić winksmiley.jpg Jak dotąd nie spotkałem się z koniecznością wiązania jednej kolumny z dwoma innymi tabelami... Jeśli możesz to chętnie zapoznam się z tym Twoim formularzem, może sam się czegoś nauczę, albo znajdę inne podejście do tej sprawy winksmiley.jpg

Pozdro

Przyklad, masz trzy tabele (kazda ma tylko jedna kolumne wspolna - w sensie o tej samej nazwie) gdzie w jednej masz zeszyty a w drugiej tabeli masz ksiazki, w trzeciej zapisujesz co uzytkownik poprzez www wybral. Uzytkownik moze wybrac tylko jeden zeszyt lub jedna ksiazke. Czyli w trzeciej tabeli potrzebujesz relacje ze moze wybrac albo cos z tabeli z zeszytami albo cos z tabeli z ksiazkami. Do podobnej sytuacji potrzebowalem "podwojny klucz obcy na jednej kolumnie" w swoim systemie (ksiazki i zeszyty to tylko przyklad). Formularz narazie jest tylko w mojej glowie tongue.gif w tej chwili zajmuje sie projektowanie bazy danych + silnik PHP do obslugi, na samym koncu zrobie WWW, pozdrawiam MD winksmiley.jpg
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.