C军

不玩博客了!

  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

2013年9月28日

摘要: 多态关联 先说明什么是多态关联。 假设我们有一张地址表,其中的地址可能是对于User中的,也可能是对于Orders中的。 以上,只是举个例子,实际的例子还有很多,比如我们要设计一个内容管理系统(CMS),我们的CMS有一个文章表,一个软件表。还要求支持评论,那么我们的评论表的Id是引用文章表还是引用软件表呢? 对于以上例子的缺点,貌似书本上有故意为此多态关联的模式走软的嫌疑。缺点不说了,主要是查询麻烦,其次不能够支持外键约束。解决方案 交叉表 对于这种需要外键引用为多个表的情况,可以建立一张交叉表。让Address不再依赖Orders或Users。 优点: 引用完整性支... 阅读全文
posted @ 2013-09-28 23:34 逆心 阅读(2426) 评论(1) 推荐(0) 编辑

摘要: 可变属性的需求:我们需要在数据库里面存储很多电器,比如电视,冰箱等等。通常,在程序中,我们的类图为:EVA设计 对于这种继承下来的可变属性时,有一种办法是创建另外一张表,将属性当成行来存储。 其中存储的数据类似下面这样: 这样的设计称为:实体-属-值,简称:EVA,或者又叫开放架构、无模式。 这种设计有如下3种好处: 1、这两张表的列都很少。 2、新增的属性不会对现有的表结构造成影响,不需要新增列。 3、避免由于空值而造成的表内容混乱。 但是这样也有如下缺点: 1、查询属性 本来,我们想要按出厂日期查询,只需要: SELECT ElectricId,DateO... 阅读全文
posted @ 2013-09-28 18:39 逆心 阅读(4512) 评论(1) 推荐(2) 编辑