1

“多对多”关系的同义词是什么?我已经完成了一个对象关系映射器的编写,但我仍然对如何命名添加该关系的函数感到困惑。

addParent() 和 addChild() 对于多对一/一对多和 addSuperclass() 对于一对一继承似乎很合乎逻辑,但是对于面向对象的程序员来说 addManyToMany() 听起来很不直观。addSibling() 或 addCousin() 也没有任何意义。

有什么建议么?在您将此视为非编程问题之前,请记住一致的命名方案和封装对于编程来说是不可或缺的:)

4

7 回答 7

4

也许addFriend()?其他选项可能是addLinked()addRelated()

于 2010-04-28T06:16:37.697 回答
1

在关系数据库术语中,一般情况称为包含依赖关系,即:A 是 B 的子集,其中 A 和 B 是对某些(不一定不同)关系的投影。“外键”是包含依赖的一种特殊情况,其中 B 是候选键。

于 2010-04-28T09:31:16.670 回答
0

这个思路怎么样:

  • connect(X, Y)
  • link(X, Y)
  • bind(X, Y)

不仅很难为面向对象系统的这种关系找到名称,而且也很难为它们建模!对象往往存在于层次结构中......

看看您是否可以找到这种关系的容器 - 检查库使用的方法名称。

于 2010-04-28T06:58:40.863 回答
0

棘手!似乎没有一个适合“RelateXtoY()”的通用术语是我能想到的最好的。

然而,对于任何实际的“真实”数据模型,通常都有一个明显的“动词”可以使用。例如,对于说 Country 和 Airline 之间的多对多关系,您可以使用 AddRouteTo(CountryId,AirlineId) 或 TravelledToUsing(CountryId,AirlineId) 方法。

于 2010-04-28T06:28:03.897 回答
0

CakePHP 将此称为“拥有并属于许多”关联

http://book.cakephp.org/view/85/Saving-Related-Model-Data-HABTM

于 2010-04-28T06:13:35.163 回答
0

addListaddChildernaddParents或怎么addParentsAndChildren样?

于 2010-04-28T06:15:06.027 回答
0

在此示例http://pastie.org/938704中,您不只是创建一个名为:

AddUserGame(用户 someUser,游戏 someGame)

于 2010-04-28T06:20:46.580 回答