ktoś Napisano Sierpień 7, 2009 Zgłoś Share Napisano Sierpień 7, 2009 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 More sharing options...
Force Napisano Sierpień 7, 2009 Zgłoś Share Napisano Sierpień 7, 2009 no to walniesz trzecią tabelż z kolumnami: id_user,_id_wiadomości, czas (aby wiedzieć które jest najnowsze), wszystkie tworzą primary key. Identycznie jak przy grupach, ale nie musi być dat Baza tysięcy lotnisk: http://airportsbase.com Link do komentarza Udostępnij na innych stronach More sharing options...
ktoś Napisano Sierpień 7, 2009 Autor Zgłoś Share Napisano Sierpień 7, 2009 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 More sharing options...
Blind Napisano Sierpień 7, 2009 Zgłoś Share Napisano Sierpień 7, 2009 wszystkie tworza primary key z tamtych tabel, ta trzecia tabela nie ma primary keya www.blinder.pl - Blog Link do komentarza Udostępnij na innych stronach More sharing options...
ktoś Napisano Sierpień 8, 2009 Autor Zgłoś Share Napisano Sierpień 8, 2009 Aha, ok, już rozumiem. Dzięki chłopaki Link do komentarza Udostępnij na innych stronach More sharing options...
Polecane posty
Zarchiwizowany
Ten temat jest archiwizowany i nie można dodawać nowych odpowiedzi.