mysql一对多怎么操作 mysql一对多查询( 二 )


删除关系:如果有组合纪录,删除之 。
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来存储,因为这类型的值一般不会用来计算) 。
比如:
军队的数据库设计中有种物资叫做“战缴物资”,就是打仗的时候缴获的,军队自己都不知道这些物资有什么属性 。
比如缴获的化学品有化学名,通用名,是否有辐射,计量单位,包装规格 , 数量等等,或者不是化学品是其他任何未知的东西 。

推荐阅读