Skocz do zawartości

[MySQL][PHP] relacja wiele do wielu


ktoś

Polecane posty

Piszę sobie kod, który może w przyszłości (fajnie jak by było od razu) wymagać zastosowania relacji wiele do wielu pomiędzy tabelą z użytkownikami(autorami) i danymi(wpisami). Nie chcę być w tedy zmuszony do przepisywania obsługi bazy danych albo co gorsza konwertowania bazy danych, jeżeli zdążę zrobić użytek ze skryptu. Wolę od razu to uwzględnić w projekcie.

 

Relacje jeden do jednego, czy jeden do wielu nie wydają się trudne, ale jak zrobić relację wiele do wielu?

Przykład:

problem: Jeden użytkownik może napisać wiele wiadomości, a każda wiadomość może mieć tylko jednego autora

rozwiązanie: dodajemy do wiadomości pole "ID autora" (a może da się lepiej?)

 

U mnie jeden użytkownik może napisać wiele wiadomości, a każda wiadomość może być modyfikowana przez wielu użytkowników.

W jaki sposób można znaleść wszystkie wiadomości modyfikowane przez określonego użytkownika?

W jaki sposób można znaleść wszystkich użytkowników, którzy modyfikowali określoną wiadomość?

 

Pytanie opcjonalne/dodatkowe: Jak zmieniłaby się sytuacja po wprowadzeniu grup? (wielu użytkowników w grupie + użytkownik w wielu grupach) Np. jak znaleść wszystkie wiadomości napisane przez użytkowników będących w określonej grupie.

Do komunikacji z bazą danych używam klas PHP Data Objects. PDO nie pozwala użyć rekurencji, poza tym byłoby to niesamowicie niewydajne.

Link do komentarza
Udostępnij na innych stronach

Aha, czyli narazie mogę się tym nie przejmować, bo i tak należy przypisanie zrobić w osobnej tabeli?

Mógłbyś odrobinę rozwinąć?

W szczególności to:

wszystkie tworzą primary key

primary key zwykle stanowi tylko jedno pole. Tutaj mają być dwa? Jak miałoby to wyglądać? Nie jestem pewny, czy dobrze Cię rozumiem.

Link do komentarza
Udostępnij na innych stronach

Zarchiwizowany

Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.

×
×
  • Utwórz nowe...