![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 2 Pomógł: 0 Dołączył: 13.10.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Posiadam obiekty: artykuły, produkty, itp. Każdy z nich może mieć komentarze. mógłbym zrobić tabele artcomment , productcomment,itp i odpowiednio utworzyć relacje Many-To-one Ale jak zrobić by zamiast artcomment , productcomment , była po prostu jedna tabela comment ? I posiadała relacje z (artykułem lub produktem, musiałyby być unikalne pola id dla tych dwóch tabel). Mam nadzieje, że w dość zrozumiały sposób przedstawiłem mój problem. Pozdrawiam Ten post edytował Piotrkus 4.12.2011, 20:32:13 |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 262 Pomógł: 5 Dołączył: 8.02.2005 Skąd: Olsztyn / Zatorze Ostrzeżenie: (0%) ![]() ![]() |
w tabeli comment utworz klucze obce (z opcją allow null) product_id, art_id.
Jesli komentarz bedzie tyczyc sie produktu to pole product_id bedzie mialo id zas art_id bedzie NULL. |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 14 Dołączył: 8.09.2011 Ostrzeżenie: (0%) ![]() ![]() |
Napisales ze z artykulem lub produktem, jezeli jeden komentarz nie moze sie odnosic zarowno do artykulu jak i do produktu to niech tabela comment ma jedną kolumnę z ID_komentowanego_obiektu, a druga kolumna w comment niech bedzie tinyint( watpie bys mial wiecej jak 256 typow a zawsze to pare bajtow do przodu), i niech oznacza typ komentarza (artykul/produkt).
jezeli moga sie odwolywac na raz do dwoch to tak jak kolega wyzej napisal. Pozniej wystarczy zapisac artykul i produkt jako stałą np artykul_type=1 produkt_type=2. Do obiektu rysujacego komentarze to juz twoja wola jak zrobisz. Jesli rysujesz je tak samo to po prostu przekazujesz obiektowi parametr type, a jezeli w rozny sposob to robisz 2 obiekty rysujace i 3 go nadzorce ktory zwraca odpowiedni obiekt w zaleznosci od typu. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 435 Pomógł: 40 Dołączył: 16.02.2003 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Napisales ze z artykulem lub produktem, jezeli jeden komentarz nie moze sie odnosic zarowno do artykulu jak i do produktu to niech tabela comment ma jedną kolumnę z ID_komentowanego_obiektu, a druga kolumna w comment niech bedzie tinyint( watpie bys mial wiecej jak 256 typow a zawsze to pare bajtow do przodu), i niech oznacza typ komentarza (artykul/produkt). jezeli moga sie odwolywac na raz do dwoch to tak jak kolega wyzej napisal. Pozniej wystarczy zapisac artykul i produkt jako stałą np artykul_type=1 produkt_type=2. Do obiektu rysujacego komentarze to juz twoja wola jak zrobisz. Jesli rysujesz je tak samo to po prostu przekazujesz obiektowi parametr type, a jezeli w rozny sposob to robisz 2 obiekty rysujace i 3 go nadzorce ktory zwraca odpowiedni obiekt w zaleznosci od typu. Oj lekko mówiąc niezbyt to zgodne z modelem relacyjnych baz danych. (IMG:style_emoticons/default/ohmy.gif) I Doctrine na coś takiego nie pozwoli. @Piotrkus - zrób tak jak napisał @Mits. Czyli: 1. w mapowaniu "article":
2. w mapowaniu "product":
3. w mapowaniu "comments":
Dzięki temu będziesz mógł z komentarza dostać się do artykułu/produktu i na odwrót (relacja dwustronna) article->getComments(); comment->getArticle(); coś w tym stylu. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 24.08.2025 - 21:55 |