数据库中多对多的关系设计_第1页
数据库中多对多的关系设计_第2页
数据库中多对多的关系设计_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、数据库中多对多的关系设计数据库设计多对多关系的几种形态 ?前言:多对多关系至少需要 3 个表,我们把一个表叫做主表, 一个叫做关系表,另外一个叫 做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容 比较多,内容变化的,例如)。 ?按照数据库的增删查改操作, 多对多关系的查找都可以用 inner join 或者 select * from 主 表 where id in (select主表 id from 关系表 )?1,角色任命型特点: 关系表两外键组合无重复纪录, 关系表一般不需要时间字段和主键, 有一个表是字典 类型的表。 ?界面特点:显示主表,用 check

2、box 或多选 select 设置多选关系。 ?例如:任命版主(用户表 - 关系表 - 版块名称表),角色权限控制等,用户是 5 个版块版主, 只要关系表 5 行纪录就可以确立,关系表的两个外键具有联合主键性质。 ? 增加关系:如果没有组合纪录, insert 之。 ?删除关系:如果有组合纪录,删除之。 ?2,集合分组型特点: 同角色任命型类似, 关系表两外键组合无重复纪录, 关系表一般不需要时间字段和主 键。区别是主副表都不是字典表,可能都很大不固定。 ?界面特点: 显示主表, 用搜索代替简单的 checkbox 或多选 select ,或者一条一条的添加。 ? 例如:歌曲专集(专集表 -

3、关系表 - 歌曲表)。手机分组(分组表 - 关系表 - 手机表)。用户圈 子(圈子表 - 关系表 - 用户表)。文章标签(文章表 - 关系表 - 标签表) ? 增加关系:同版主任命型。 ?删除关系:同版主任命型。 ?3,明细帐型特点:关系表可以有重复纪录, 关系表一般有时间字段, 有主键, 可能还有文字型的字段用 来说明每次发生关系的原因(消费)。 ?界面特点:显示关系表,用 radio 或下拉设置单选关系。 ?例如: 现金消费明细帐或订单(用户表 - 订单表 - 消费原因表) ,用户可能多次在同一事情上 重复消费。积分变化纪录也属于这类。 ?增加关系:不管有没有组合纪录, insert 之,

4、纪录时间。 ?删除关系:根据关系表 PK删除。?4,评论回复型特点:同明细帐型关系表一般有时间字段, 有主键, 区别是重点在文字型的字段用来说明每 次发生关系的内容(评论回复)。 ?界面特点:回复文本框。 ?例如:论坛回复(用户表 - 回复表 - 帖子表),用户可能多次在不同帖子上评论回复费。?增加关系:不管有没有组合纪录, insert 之,纪录时间和文字。 ?删除关系:根据关系表(回复表)PK删除。?5,站内短信型特点: 主副表是同一个, 关系表一般有时间字段, 有主键,重点在关系表文字型的字段用来 说明每次发生关系的内容(消息)或者其他标记位来表示文字已读状态时间等。?界面特点:回复文本

5、框。 ?例如:站内短信(用户表 - 短信表 - 用户表),用户可能给用户群发或者单发,有标记位来表 示文字已读状态时间等。 ?增加关系:不管有没有组合纪录, insert 之,纪录时间和文字。 ?删除关系:根据关系表(回复表)PK删除。?6,用户好友型特点: 主副表是同一个, 同集合分组型, 关系表两外键组合无重复纪录,关系表一般不需要 时间字段和主键。 ?界面特点:同集合分组型,显示主表,用搜索代替简单的 checkbox 或多选 select ,或者 条一条的添加。 ?例如:下载站点的文件, (文件表 - 关系表 - 文件表)可以被软件工具打开,软件工具本身也 是一种文件,可以被下载。用户

6、的好友,也是用户(用户表 - 好友关系表 - 用户表) ? 增加关系:同版主任命型。 ?删除关系:同版主任命型。 ?7,未知属性型特点: 在设计初期, 主表的某些字段类型和名称是不确定的时候, 关系表实际上是主表的可 扩展字段, ?一个主表(ID), ?一个 属性名称表 (属性 ID. 属性名称 ) , ?一个 属性值表 ,包括 3 个字段: ? 属性值 (属性 Value varchar(500)? 主表 ID? 属性 ID? 这样可以作到最小冗余度。 ?(和常见的多对多关系不同的是: 值统一用 varchar 来存储, 因为这类型的值一般不会用来 计算)。 ?比如: ? 军队的数据库设计中有种物资叫做“战缴物资”,就是打仗的时候缴获的,军队自己都不知 道这些物资有什么属性。 ?比如缴获的化学品有化学名,通用名,是否有辐射,计量单位,包装规格,数量等等,或者 不是化学品是其他任何未知的东西。 ?这样东西就可以 ?某奇怪东西 . 属性集合 某某奇怪属性名 = 某某奇怪值 ;?某变态东西 . 属性集合 某某变态属性名 = 某某变态值 ;?这样存储。 ?再比如: ?手机型号有几千种, 除了共同属性外还有不同属性有几百个, 属性名和值类型都不一样, 有 的手机有这属性,有的没有。 ?对于这样的“多态”,我们就采用上面的设计结构。 ?其效果相当于:

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论