【发布时间】:2012-04-09 21:43:28
【问题描述】:
我正在尝试为我的用户实现一个简单的消息传递系统。
我不是 habtm 专家,因此我们将不胜感激!
这是我到目前为止所得到的,请提出任何建议! (蛋糕1.3)
CREATE TABLE IF NOT EXISTS `app_messages` (
`id` int(8) unsigned NOT NULL AUTO_INCREMENT,
`from_user_id` int(8) unsigned DEFAULT NULL,
`title` varchar(255) DEFAULT NULL,
`body` text,
`created` datetime DEFAULT NULL,
PRIMARY KEY (`id`)
);
CREATE TABLE IF NOT EXISTS `app_messages_users` (
`id` int(8) unsigned NOT NULL,
`message_id` int(8) unsigned NOT NULL,
`to_user_id` int(8) unsigned NOT NULL,
`read` tinyint(1) DEFAULT '0',
`replied` tinyint(1) NOT NULL DEFAULT '0',
`trash` tinyint(1) NOT NULL DEFAULT '0',
PRIMARY KEY (`id`)
);
Message.php
var $hasAndBelongsToMany = array(
'User' =>
array(
'className' => 'User',
'joinTable' => 'messages_users',
'foreignKey' => 'message_id',
'associationForeignKey' => 'to_user_id',
'unique' => true
)
);
User.php
var $hasMany = array(
'Message' => array(
'className' => 'message',
'foreignKey' => 'from_user_id',
'dependent' => true
)
所以现在,我的问题是,我这样做对吗?
如何创建一个 SEND MESSAGE 函数,将正确的值插入两个表? 关于 HABTM 关系,我完全是个菜鸟,但我正在努力学习。花了几个小时在网上阅读它,但仍然需要询问我是否走对了。
感谢您的宝贵时间!! -汤姆
【问题讨论】:
-
你可以看看我的“对话”sql表@groups.google.com/d/msg/cake-php/BlOQsyuFnEc/2YXduSde0mwJ。这通过对话将它们组合在一起来减少冗余。然后使用 3 个表。
-
看了一下,实际上,我在摆弄一些说明/最佳方法时已经看过该讨论;)您如何在模型/控制器中进行发送时保存消息等等?
标签: mysql cakephp model controller has-and-belongs-to-many