2015-02-07 158 views
0

蛋糕newb在这里。Cakephp,HABTM协会

我有两个表。用户和事件。用户可以订阅多个事件。

实现此目的的最佳方法是什么?

我是否必须创建另一个表并将它们链接起来,还是有其他更好的方法。

如果我确实创建了一个新表格,我该如何将它们链接到蛋糕模型中?

+0

你应该使用蛋糕模型,因为它加入了表格。当你从表格搜索时你不需要加入它。 – 2015-02-07 10:09:47

+0

首先阅读文档** [http://book.cakephp.org/2.0/en/models/associations-linking-models-together.html](http://book.cakephp.org/2.0/en/ models/associations-linking-models-together.html)** – ndm 2015-02-07 10:45:46

+0

谢谢。我懂了。 – Kanishka 2015-02-08 11:11:34

回答

1

您应该使用HABTM关系。

原因

见用户订阅多个事件和

一个事件有多个用户订阅了。

所以这是双向关系。因此,你需要下面的表格

users:存储用户的数据,

events:存储用户的数据,

events_users:成存储用户加入哪个事件,反之亦然(与用户的n个活动)

因此,users_events将有2个字段user_id,event_id,都是外键,在这里你不需要HABTM关系中的主键。

+1

不能要求更好的答案。非常感谢。 – Kanishka 2015-02-08 11:11:12

+0

@ kanishka,没有问题,我很高兴你与cakePHP合作。 – 2015-02-08 11:51:21

2

正如jQuery.PHP.Magento.com所说,您应该使用HABTM关系,但第三个表的名称应该是events_users,因为表名应该按字母顺序排列。

从DOC:

表的名字都在按照惯例字母顺序排列。可以通过关联定义 定义一个自定义表名。

+0

我忘了它,更新了答案。 – 2015-02-08 11:29:41