CakePHP中同一个表上的HABTM关系

时间:2009-07-05 15:09:51

标签: php database cakephp modeling

我正在建立一个社交网络风格的网站,人们可以在其联系人列表中找到其他人,我想在同一桌面上将这种关系建模为HABTM关系,即用户,这是一个好主意吗?或者有更好的方法吗?

1 个答案:

答案 0 :(得分:7)

这取决于。如果您只想在用户之间创建关系,那么您只需使用HABTM即可。如果要存储有关关系本身的更多信息,则可能需要将其作为单独的对象。例如,您可能希望存储两个用户拥有的关系。朋友?同事? Parters?

在这种情况下,您可以创建单独的Relationship或Contact对象。然后,用户拥有多个联系人,每个联系人都属于两个用户。这与手动创建HABTM关系基本相同,但由于关系本身现在是一个单独的模型(即联系人),您可以在其中存储额外信息。