2009-06-12

一对多关系的不稳定性

Views: 25981 | Add Comments

经典的对象关系模型有三个: 一对一(one-to-one), 一对多(one-to-many), 多对多(many-to-many). 事实上, 一对多只是一种游离的中间状态, 任何设计中一旦使用了一对多关系, 迟早会发现只有多对多才能满足业务的变更. 对象关系要么是一对一, 要么是多对多, 没有一对多.

以博客程序作为例子, 想当然地, 认为博客作者只能是一个人, 所以用户和博客文章的关系是一对多的. 但是, 如果不把博客当为个人的日记本来使用, 把博客当做文章发布平台, 这时, 这个模型就不能使用了, 因为文章的作者是可以有多人的.

这只是其中一个例子, 你可能认为有真正的文章发布平台, 不应该把博客程序当做文章发布系统. 想想, 人们会本能地认为一个部门只能属于一个公司, 一个小组只能属于一个部门, 但是, 多个公司合办的交流部门呢? 两个部门合作的小组呢? 这种例子数不胜数.

根据我的经验, 一旦有人设计对象关系模型(如数据库设计)时使用出了一对多关系模型, 我们应该像看到了想抢我们饭碗的人一样警惕起来: 真的是一对多关系吗? 就跟我们问一个从天而降的不明类人生物: 你是地球人吗?

Related posts:

  1. LevelDB 的原理和动机
  2. 概率选取的实现
  3. 没见过比svn更难用的工具
  4. PyPy – 吞下自己尾巴的小蟒蛇
  5. C#环形缓冲
Posted by ideawu at 2009-06-12 18:24:04 Tags: ,

Leave a Comment