Cool, but LastMessage isnt attaching.
Question, how can i join in this query the usarname that im talking 
(Condition like this: where user_id =/= my_user_id. Or first in the result 
row always be my user_id then i know the rest...)? Like Facebook, always 
show the another user, and not the user that created the conversation.

Em segunda-feira, 28 de fevereiro de 2011 12h13min52s UTC-3, euromark 
escreveu:
>
> @josh 
> with joins and group statements it is easier to accomplish: 
>
>         function ownConversations($uid, $type = 'all') { 
>                 $options = array( 
>                         'conditions' => array('ConversationUser.status 
> <'=>ConversationUser::STATUS_REMOVED), 
>                         'group' => array('ConversationUser.conversation_id 
> HAVING SUM(case 
> when ConversationUser.`user_id` in (\''.implode('\', \'', $uid).'\') 
> then 1 else 0 end) = '.count($uid).''), 
>                         'contain' => array('Conversation' => 
> array('LastMessage')), 
>                         'order' => 
> array('Conversation.last_message_id'=>'DESC') 
>                 ); 
>                 return $this->ConversationUser->find($type, $options); 
>         } 
>
>
> On 24 Feb., 12:02, "Ma'moon" <[email protected]> wrote: 
> > i just have 2 points to mention for this subject: 
> > 
> > 1) If you are going to use an RDBMS to store the messages using MySQL 
> then 
> > use `InnoDB` as your table engine instead of `MyISAM` 
> > 2) This kind of tables by nature grows faster than the most of the other 
> > tables in terms of records in your system, and hence you will reach a 
> > scalability and performance issues once this table goes for large amount 
> of 
> > data, hence i would recommend considering IMAP for such a task. 
> > 
> > i have worked on such an environments before with very high traffic and 
> very 
> > large amount of data and after pulling our hairs off to boost the 
> > performance we saw that IMAP was the best solution ever for this kind of 
> > tasks 
> > 
> > Ma'moon 
> > 
> > On Wed, Feb 23, 2011 at 8:08 PM, euromark 
> > <[email protected]>wrote: 
>
> > 
> > 
> > 
> > 
> > 
> > 
> > 
> > > sure 
> > 
> > > CREATE TABLE IF NOT EXISTS `comm_conversations` ( 
> > >  `id` char(36) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
> > >  `user_id` char(36) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
> > >  `title` varchar(60) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
> > >  `created` datetime NOT NULL, 
> > >  `last_message_id` int(10) unsigned NOT NULL DEFAULT '0', 
> > >  `allow_add` tinyint(1) unsigned NOT NULL DEFAULT '0', 
> > >  `count` int(10) unsigned NOT NULL DEFAULT '0', 
> > >  PRIMARY KEY (`id`), 
> > >  KEY `user_id` (`user_id`) 
> > > ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; 
> > 
> > > CREATE TABLE IF NOT EXISTS `comm_conversation_messages` ( 
> > >  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
> > >  `conversation_id` char(36) COLLATE utf8_unicode_ci NOT NULL, 
> > >  `user_id` char(36) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
> > >  `attachment_id` int(10) unsigned NOT NULL DEFAULT '0', 
> > >  `message` text COLLATE utf8_unicode_ci NOT NULL, 
> > >  `created` datetime NOT NULL, 
> > >  PRIMARY KEY (`id`), 
> > >  KEY `user_id` (`user_id`) 
> > > ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
> > > AUTO_INCREMENT=109 ; 
> > 
> > > CREATE TABLE IF NOT EXISTS `comm_conversation_users` ( 
> > >  `id` int(10) unsigned NOT NULL AUTO_INCREMENT, 
> > >  `conversation_id` char(36) COLLATE utf8_unicode_ci NOT NULL, 
> > >  `user_id` char(36) COLLATE utf8_unicode_ci NOT NULL DEFAULT '', 
> > >  `status` tinyint(2) unsigned NOT NULL DEFAULT '0' COMMENT '0=ok, 
> > > 1=deleted,2=removed', 
> > >  `last_view` int(10) unsigned NOT NULL DEFAULT '0', 
> > >  `created` datetime NOT NULL, 
> > >  PRIMARY KEY (`id`), 
> > >  KEY `user_id` (`user_id`), 
> > >  KEY `conversation_id` (`conversation_id`) 
> > > ) ENGINE=MyISAM  DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci 
> > > AUTO_INCREMENT=110 ; 
> > 
> > > On 23 Feb., 21:31, Josh <[email protected]> wrote: 
> > > > Hey euromark, 
> > 
> > > > That looks like exactly what I'm trying to do.  Could you also let 
> us 
> > > know 
> > > > what columns are in each table?  I'm sort of following your logic, 
> but 
> > > not 
> > > > 100% and I think seeing the table columns would help a lot. 
> > 
> > > > ~Josh 
> > 
> > > -- 
> > > Our newest site for the community: CakePHP Video Tutorials 
> > >http://tv.cakephp.org 
> > > Check out the new CakePHP Questions sitehttp://ask.cakephp.organd help 
> > > others with their CakePHP related questions. 
> > 
> > > To unsubscribe from this group, send email to 
> > > [email protected] <javascript:> For more options, visit 
> this group 
> > > athttp://groups.google.com/group/cake-php

-- 
You received this message because you are subscribed to the Google Groups 
"CakePHP" group.
To post to this group, send email to [email protected].
To unsubscribe from this group, send email to 
[email protected].
Visit this group at http://groups.google.com/group/cake-php?hl=en-US.


Reply via email to