CakePHP中同一个表上的HABTM关系

Shi*_*hiv 1 php database modeling cakephp

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

San*_*hal 7

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

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