- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
数据库中多对多的关系设计
数据库设计多对多关系的几种形态
序言:多对多关系起码需要3个表,我们把一个表叫做主表,一个叫做关系表,此外一个
叫做词典表或许副表(词典表是纪录比较少,并且基本稳固的,比如:版块名称;副表是内
容比许多,内容变化的,比如)。
依据数据库的增删查改操作,多对多关系的查找都能够用innerjoin或许select*from主
表whereidin(select主表idfrom关系表)
,角色委任型
特色:关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是词典
种类的表。
界面特色:显示主表,用checkbox或多项选择select设置多项选择关系。
比如:委任版主(用户表-关系表-版块名称表),角色权限控制等,用户是5个版块版主,
只需关系表5行纪录就能够确定,关系表的两个外键拥有结合主键性质。
增添关系:假如没有组合纪录,insert之。
删除关系:假如有组合纪录,删除之。
,会合分组型
特色:同角色委任型近似,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主
优选文档
键。差别是主副表都不是词典表,可能都很大不固定。
界面特色:显示主表,用搜寻取代简单的checkbox或多项选择select,或许一条一条的增添。
比如:歌曲专集(专集表-关系表-歌曲表)。手机分组(分组表-关系表-手机表)。用户圈
子(圈子表-关系表-用户表)。文章标签(文章表-关系表-标签表)
增添关系:同版主委任型。
删除关系:同版主委任型。
,明细帐型
特色:关系表能够有重复纪录,关系表一般有时间字段,有主键,可能还有文字型的字段用
来说明每次发生关系的原由(花费)。
界面特色:显示关系表,用radio或下拉设置单项选择关系。
比如:现金花费明细帐或订单(用户表-订单表-花费原由表),用户可能多次在同一事情上
重复花费。积分变化纪录也属于这种。
增添关系:不论有没有组合纪录,insert之,纪录时间。
删除关系:依据关系表PK删除。
,议论答复型
特色:同明细帐型关系表一般有时间字段,有主键,差别是要点在文字型的字段用来说明每
次发生关系的内容(议论答复)。
界面特色:答复文本框。
—2
优选文档
比如:论坛答复(用户表-答复表-帖子表),用户可能多次在不同帖子上议论答复费。
增添关系:不论有没有组合纪录,insert之,纪录时间和文字。
删除关系:依据关系表(答复表)PK删除。
,站内短信型
特色:主副表是同一个,关系表一般有时间字段,有主键,要点在关系表文字型的字段用来
说明每次发生关系的内容(信息)或许其余标志位来表示文字已读状态时间等。
界面特色:答复文本框。
比如:站内短信(用户表-短信表-用户表),用户可能给用户群发或许单发,有标志位来表
示文字已读状态时间等。
增添关系:不论有没有组合纪录,insert之,纪录时间和文字。
删除关系:依据关系表(答复表)PK删除。
,用户挚友型
特色:主副表是同一个,同会合分组型,关系表两外键组合无重复纪录,关系表一般不需要
时间字段和主键。
界面特色:同会合分组型,显示主表,用搜寻取代简单的checkbox或多项选择select,或许一
条一条的增添。
比如:下载站点的文件,(文件表-关系表-文件表)能够被软件工具翻开,软件工具自己也
是一种文件,能够被下载。用户的挚友,也是用户(用户表-挚友关系表-用户表)
—3
优选文档
增添关系:同版主委任型。
删除关系:同版主委任型。
,未知属性型
特色:在设计早期,主表的某些字段种类和名称是不确定的时候,关系表其实是主表的可
扩展字段,
一个[主表](ID),
一个[属性名称表](属性ID.属性名称),
一个[属性值表],包含3个字段:
属性值(属性Valuevarchar(500))
主表ID
属性ID
这样能够作到最小冗余度。
(和常有的多对多关系不同的是:值一致用varchar来储存,由于这种类的值一般不会用来
计算)。
比方:
军队的数据库设计中有种物质叫做“战缴物质”,就是打仗的时候缴获的,军队自己都不知
道这些物质有什么属性。
比方缴获的化学品有化学名,通用名,能否有辐射,计量单位,包装规格,数目等等,或许
不是化学品是其余任何未知的东西。
这样东西就能够
—4
优选文档
某奇异东西.属性会合[某某奇异属性名]=某某奇异值;
某变态东西.属性会合[某某变态属性名]=某某变态值;
这样储存。
再比方:
手机型号有几千种,除了共同属性外还有不同属性有几百个,属性名和值种类都不同样,有
的手机有这属性,有的没有。
关于这样的“多态”,我们就采纳上边的设计构造。
其成效相当于:
某奇异手机.属性会合[某某奇异属性名]=某某奇异值;
某变态手机.属性会合[某某变态属性名]=某某变态值;
界面特色:设置主表
文档评论(0)