![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Probuje stworzyc relacje w ten sposob:
Kod Article hasOne User User hasMany Article User hasMany Comments Articles hasMany Comments Tabela 'comments' chcialbym zeby wygladala mniej wiecej tak: Kod id content user_id model foreign_key ... Przykladowe wiersze w tabeli 'comments': Kod 1, 'Witaj kolego!' 123, User, 3 // user_id=123 dodal komentarz do uzytkownika o id=3 2, 'Dobry artykul!', 234, Article, 42 // user_id=234 dodal komentarz do artykulu o id=42 Czy to jest dobry sposob dla tabeli 'comments', dobre rozumowanie. I w jaki sposob mialby dzialac model Comment? Ten post edytował kicaj 10.01.2009, 02:30:52 -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
oczywiscie mozna wrzucic wszystkie komentarze do jednej tabeli ale nie wiem czy ma to sens. raz ze mieszasz ze soba rozne komentarze ( jakby nie bylo jedne dotyczna tekstow a inne uzytkownikow ) a 2 ze moze ci sie tego zrobic strasznie duzo w tabeli. Skoro masz komentarze dla uzytkownikow i tekstow to zrob 2 tabele users_comments i articles_comments i wtedy nie ma problemu bo robisz sobie najprostrze relacje. do tego nie bedziesz mial problemu jezeli bedziesz chcial wyciagnac np. jednoczesnie 10 ostatnich komentarzy dla uzytkownika i 10 ostatnich komentarzy dla jego tekstow czy cos w tym stylu. czasami jest lepiej zrobic 1 dodatkowa tabele 1 dodatkowy model z ktorym i tak nigdy nie bedziesz mial problemu a zawsze bedziesz mial mozliwosc jakiejs modyfikacji.
|
|
|
![]()
Post
#3
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Jednak wolalbym zostac przy jednej tabeli, komentarze beda uzywane do wiece niz dwoch podanych modeli, wiec niechcialbym do prawie kazdnego modelu stwarzac dodatkowa tabele: nazwamodelu_comments.
Co do wyswietlania do wolabym wtedy wyswietlic "10 komentarzy dodanych w serwisie", a juz w linkach bedzie podzial czy do arta, usera, czy jeszcze gdzie indziej. Nie widze sensu tworzyc kilka identycznych tabel i kilka identycznych modeli, ktore dzialaja identycznie, zasada DRY:) Tylko teraz jak zbuduje tabele 'comments' jak juz mowilem, z polem 'model' i 'foreign_key', wiec jak zmusic Cake zeby korzystal z tej tabeli prawidlowo (wstawial w 'model' odpowiednio: Article, User, itd.) oraz zeby caly czas zachowane byly relacje typu 'User hasMany Comment' Ten post edytował kicaj 10.01.2009, 12:34:18 -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
no to ok, wiec zrobil bym to tak
Kod tabela comments --------------- id content model model_id i teraz tak
i tak samo dla userow a model Comment
|
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Czy automatycznie powinno pojawic sie pole 'Comment.model' w $this->data?
Bo sie nie pojawia... A recznie $this->data['Comment']['model'] = 'Article' mija sie chyba z celem? Ten post edytował kicaj 12.01.2009, 01:38:09 -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#6
|
|
![]() Grupa: Zarejestrowani Postów: 274 Pomógł: 54 Dołączył: 2.05.2006 Skąd: Nadarzyn Ostrzeżenie: (0%) ![]() ![]() |
Nie rozumiem jak to automatycznie ? musisz zdefiniowac model podczas tworzenia komentarza lub jego zapisywania lub w formularzu.
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
No chyba to jedyne rozwiazanie
Myslalem ze moze jakos tak automatycznie jak to robi 'foreignKey' w relacjach - sam wylapuje i myslalem ze moze dla 'model' tez tak mozna:) -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 18.07.2025 - 15:29 |