Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: zwiazek wiele do wiele
Forum PHP.pl > Forum > Bazy danych > Oracle
dargoth
witam...
czy moglibyscie napisac (i pokazac na przykladzie) w jakis posob robi sie w sqlu zwiazek wiele do wiele? wiem jak robic 1-n itp ale n-n jest jakies dziwne i nie potrafie sobie wyobrazic jak to mozna zrobic:/

z gory dzieki..
mike
Zakładamy ża artykuł może mieć wielu autorów.

authors
id | name | surname | ... jakieś inne pola

articles
id | subjest | shortcut | content | ... jakieś inne pola

I teraz tabela łącząca:

articles_has_authors
id_author | id_article

I teraz przykład:
  1. INSERT
  2. INTO authors
  3. SET id = 1, name = "Jan", surname = "Kowalski";
  4. INSERT
  5. INTO authors
  6. SET id = 2, name = "Tomasz", surname = "Nowak";


  1. INSERT
  2. INTO articles
  3. SET id = 1, subject = "Art 1", shortcut = "Wstęp ...", content = "Bla bla bla";
  4. INSERT
  5. INTO articles
  6. SET id = 2, subject = "Kolejny art", shortcut = "Wstęp w fwe fwe...", content = "Lorem ipsum";


  1. INSERT
  2. INTO articles_has_authors
  3. SET id_author = 1, id_article = 1;
  4. INSERT
  5. INTO articles_has_authors
  6. SET id_author = 2, id_article = 1;
  7. INSERT
  8. INTO articles_has_authors
  9. SET id_author = 2, id_article = 2;


I z teraz autorem artykułu "Art 1" jest Kowalski i Nowak a autorem artykułu "Kolejny art" jest Nowak.
dargoth
dzieki za odswiezenie pamieci... rozumiem ze nie ma tutaj zadnych kluczy obcych ani nic takiego ani nic takiego... rozumiem tez ze w przypadku takiego zwiazku trzeba tez samemu dbac o to by sie cos nei "posypalo" przy usuwaniu itp... tak samo jak sie dodaje cos to trzeba dodawac w dwa miejsca (np jak dodajemy autora do artykulu to trzeba dodac go do tabeli autorzy oraz do tabeli posredniczacej)
mike
Cytat(dargoth @ 2006-05-18 21:30:19)
dzieki za odswiezenie pamieci... rozumiem ze nie ma tutaj zadnych kluczy obcych ani nic takiego ani nic takiego...

Pola w tabeli articles_has_authors są polami obcymi z pozostałych tabel.

Cytat(dargoth @ 2006-05-18 21:30:19)
tak samo jak sie dodaje cos to trzeba dodawac w dwa miejsca (np jak dodajemy autora do artykulu to trzeba dodac go do tabeli autorzy oraz do tabeli posredniczacej)

Nie koniecznie. Jak dodajesz autora to tylko do tabeli authors, przecież autor może istnieć samodzielnie.
Dopiero jak dodajesz artykuł to wypadałoby uzupełnić tabelę articles_has_authors.
Chociaż w zasadzie nie jest to wymagane, jeśli tego nie zrobisz to artykuł nie będzie miał autora.

Decyzja należy do Ciebie.
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.