数据库设计 一对多 多对多 无限级菜单 设计方法
设计规范
1、每一个列保持一个原子性,字段不可再划分
2、一个物体描述信息一个表存完
3、每一个字段都是跟主键直接相关的,一条数据只存一次
一对多 如下
通过ID 进行关联
多对多 如下
通过中间表(映射表)进行关联
无限级菜单
name:菜单名称
parentId:上级菜单的ID 也就是这个表里面的ID
levelNum:菜单等级 方便查找
code 和path配合 下级菜单的path 是上级菜单的path+caode 方面通过 ‘path%’进行查询属于该菜单下级的所有菜单
order:排序
关于自增主键用ID还是Guid的区别
用int自增
优点:不需要指定ID值、简单易用、省空间
缺点:迁移数据麻烦,垮库麻烦
用Guid
优点:全球唯一
缺点:如果用做Url中当参数,看起来不友好
关于设置主外键
优点:插入数据的时候,会有校验、更新删除数据的时候,会自动查找 删除相关信息
缺点:多一步检测,耗时,数据导入麻烦
建议:虚拟主外键,逻辑上有外键,不在数据库中体现