“多对多”关系的同义词是什么?我已经完成了一个对象关系映射器的编写,但我仍然不知道如何命名添加该关系的函数。
addParent()和addChild()似乎对于多对一/一对多和addSuperclass()进行一对一继承非常合乎逻辑,但addManyToMany()听起来对于一个对象来说是非常不直观的 - 面向程序员。 addSibling()或addCousin()也没有意义。
有什么建议吗?在您将此视为非编程问题之前,请记住,一致的命名方案和封装对于编程来说是非常不可或缺的:)
答案 0 :(得分:4)
也许addFriend()
?其他选项可能是addLinked()
或addRelated()
。
答案 1 :(得分:1)
在关系数据库术语中,一般情况称为包含依赖性,即:A是B的子集,其中A和B是某些(不一定是不同的)关系的投影。 “外键”是包含依赖的特例,其中B是候选键。
答案 2 :(得分:0)
CakePHP将其称为“拥有且属于许多”协会
http://book.cakephp.org/view/85/Saving-Related-Model-Data-HABTM
答案 3 :(得分:0)
addList
或addChildern
或addParents
或addParentsAndChildren
怎么样?
答案 4 :(得分:0)
在此示例http://pastie.org/938704中,您不会只创建一个名为:
的方法AddUserGame(User someUser,Game someGame)
答案 5 :(得分:0)
棘手!似乎没有一个符合“RelateXtoY()”的通用术语是我能想到的最好的。
然而,对于任何实际的“真实”数据模型,通常可以使用明显的“动词”。例如,对于国家和航空公司之间的多对多关系,您可以使用方法AddRouteTo(CountryId,AirlineId)或TravelledToUsing(CountryId,AirlineId)。
答案 6 :(得分:0)
这一思路怎么样:
connect(X, Y)
link(X, Y)
bind(X, Y)
对于面向对象系统而言,不仅难以找到这种关系的名称,而且对它们进行建模也很困难! 对象往往生活在层次结构中......
查看是否可以找到这种关系的容器 - 检查库使用的方法名称。