问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

[转]数据库设计多对多关系的几种形态_MySQL

发布网友 发布时间:2023-08-22 22:48

我来回答

1个回答

热心网友 时间:2023-10-03 09:43


bitsCN.com
前言:多对多关系至少需要3个表,我们把一个表叫做主表,一个叫做关系表,另外一个叫做字典表或者副表(字典表是纪录比较少,而且基本稳定的,例如:版块名称;副表是内容比较多,内容变化的,例如)。按照数据库的增删查改操作,多对多关系的查找都可以用inner join或者select * from 主表 where id in (select 主表id from 关系表)1,角色任命型特点:关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键,有一个表是字典类型的表。界面特点:显示主表,用checkbox或多选select设置多选关系。例如:任命版主(用户表-关系表-版块名称表),角色权限控制等,用户是5个版块版主,只要关系表5行纪录就可以确立,关系表的两个外键具有联合主键性质。增加关系:如果没有组合纪录,insert之。删除关系:如果有组合纪录,删除之。2,集合分组型特点:同角色任命型类似,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。区别是主副表都不是字典表,可能都很大不固定。界面特点:显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。例如:歌曲专集(专集表-关系表-歌曲表)。手机分组(分组表-关系表-手机表)。用户圈子(圈子表-关系表-用户表)。文章标签(文章表-关系表-标签表)增加关系:同版主任命型。删除关系:同版主任命型。3,明细帐型特点:关系表可以有重复纪录,关系表一般有时间字段,有主键,可能还有文字型的字段用来说明每次发生关系的原因(消费)。界面特点:显示关系表,用radio或下拉设置单选关系。例如:现金消费明细帐或订单(用户表-订单表-消费原因表),用户可能多次在同一事情上重复消费。积分变化纪录也属于这类。增加关系:不管有没有组合纪录,insert之,纪录时间。删除关系:根据关系表PK删除。4,评论回复型特点:同明细帐型关系表一般有时间字段,有主键,区别是重点在文字型的字段用来说明每次发生关系的内容(评论回复)。界面特点:回复文本框。例如:论坛回复(用户表-回复表-帖子表),用户可能多次在不同帖子上评论回复费。增加关系:不管有没有组合纪录,insert之,纪录时间和文字。删除关系:根据关系表(回复表)PK删除。5,站内短信型特点:主副表是同一个,关系表一般有时间字段,有主键,重点在关系表文字型的字段用来说明每次发生关系的内容(消息)或者其他标记位来表示文字已读状态时间等。界面特点:回复文本框。例如:站内短信(用户表-短信表-用户表),用户可能给用户群发或者单发,有标记位来表示文字已读状态时间等。增加关系:不管有没有组合纪录,insert之,纪录时间和文字。删除关系:根据关系表(回复表)PK删除。6,用户好友型特点:主副表是同一个,同集合分组型,关系表两外键组合无重复纪录,关系表一般不需要时间字段和主键。界面特点:同集合分组型,显示主表,用搜索代替简单的checkbox或多选select,或者一条一条的添加。例如:下载站点的文件,(文件表-关系表-文件表)可以被软件工具打开,软件工具本身也是一种文件,可以被下载。用户的好友,也是用户(用户表-好友关系表-用户表)增加关系:同版主任命型。删除关系:同版主任命型。7,未知属性型特点:在设计初期,主表的某些字段类型和名称是不确定的时候,关系表实际上是主表的可扩展字段,一个[主表](ID),一个[属性名称表](属性ID.属性名称),一个[属性值表],包括3个字段: 属性值(属性Value varchar(500)) 主表ID 属性ID这样可以作到最小冗余度。(和常见的多对多关系不同的是:值统一用varchar来存储,因为这类型的值一般不会用来计算)。比如:军队的数据库设计中有种物资叫做“战缴物资”,就是打仗的时候缴获的,军队自己都不知道这些物资有什么属性。 比如缴获的化学品有化学名,通用名,是否有辐射,计量单位,包装规格,数量等等,或者不是化学品是其他任何未知的东西。 这样东西就可以 某奇怪东西.属性集合["某某奇怪属性名"]="某某奇怪值"; 某*东西.属性集合["某某*属性名"]="某某*值"; 这样存储。再比如:手机型号有几千种,除了共同属性外还有不同属性有几百个,属性名和值类型都不一样,有的手机有这属性,有的没有。对于这样的“多态”,我们就采用上面的设计结构。其效果相当于:某奇怪手机.属性集合["某某奇怪属性名"]="某某奇怪值";某*手机.属性集合["某某*属性名"]="某某*值";界面特点:设置主表一行纪录的属性时候,要列出所有可能的属性名称,每个对应一个文本框。
总结这个的目的是做通用的后台。只要有:1,通用的单个表维护(1-2种)。2,通用的一对多关系维护(1-2种)。3,通用的多对多关系维护(7-10种)。4,通用的树型关系维护(2-3种)。就大体完成了后台的80%工作。而且,所有项目通用,如果一个团队同时有多个项目,可以节省大量劳动时间。
bitsCN.com
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
请帮忙查iphone4手机的序列号dx3hnchpdp0n DX3J481PDP0N帮忙查一下 是真的吗 我不会查 大神们是翻新的? 苹果4激活日期查询 猫猫一直发情怎么办呢 如何帮助猫咪度过发情期呢? 本科英语都要过4级吗 车子中间的踏板是什么 高考400分能考哪些军事类二本 联通3g双卡双待智能导航手机 ...可以一个卡装移动2g的卡,专打电话,一个卡装联通3g流量卡吗 多边形房子怎么装修,多边形房子装修设计要注意哪些事项? 不规则客厅怎么装修 我不小心把短信设置成用流量才能发过去,怎样去掉呢 iphone6不知道设置错了什么,一直发不出短信,好不容易设置好了,可是发出去的都是邮箱地址发送和 iphone为什么发短信有问题 对方说要用流量才能看 发的时候就会很慢 还卡住 为什么iphone6手机是用流量发信息的事么? TCL电磁炉型号TCP203H,老是烧管 牛腿肉炖着吃煎来吃都很美味 被动表扬是表扬的一种吗 幼儿执拗期的教育心得 怎样缓解“鼠标手” 税务检查和税务稽查的区别 ipc是软件合法吗 qq为什么不能发送信息给别人,显示红色? (爱情包围圈)是什么意思? 英文短句伤感说说【错过的伤感心情说说短句】 客厅酒柜装修时的颜色搭配 大夫你好!最近一段时间,我早上起来一呼吸就胃凉胃涨不舒服,就是唱一首歌也感觉胃气不足,胃里凉,气不 一觉醒来,手背上出现了吸血鬼的图案,一会又消失了,什么意思 吸血鬼骑士……一个图案...求名字介绍 梦见很多人在游泳什么意思梦见很多人在游泳是什么预兆 苹果为什么会掉下来? 苹果落地的原理是什么? miuisdkmanager关了会影响正常使用吗? 大圣传说的游戏目标 宣三铜板有黑色的吗 电影《秃探与俏妹》的主题歌叫什么名字 藏传佛教与汉传佛教的区别 水杯异味如何去除 水杯异味怎么去除 赵长卿《簇水》原文及翻译赏析 gtx750ti 2g 8g内存 CPU i3 3240可以吃鸡吗。如果不可以需要换什么 怎样设置在Q上,别人加你需要回答问题 QQ设置了回答问题才可以加Q,那我加别人,别人要回答问题吗? 为什么我的Q没人加 那一次,我很快乐_550字 淘宝上哪家的牛肉干比较好吃? 事业单位专业技术岗位和管理岗位哪个好 它们是怎么来的的内容简介 它们是怎么来的的推荐理由 读《扑哧哧,电是怎么来的?》读后感