2015-02-07 195 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