在数据库设计时,存在多张表有关系时该怎么设计为最优?
例如,现在有个table_user其中的字段有id,username,age;又有一个角色表table_role,其中字段有id,rolename。这时候如果要给这两个表...
例如,现在有个table_user 其中的字段有 id,username,age;又有一个角色表table_role,其中字段有id,rolename。这时候如果要给这两个表加入关系时,是在table_user表里面加入一个新的字段和table_role建立关系呢?还是再另外建立一张表,来保存这个表之间的关系比较好?
展开
5个回答
光点科技
2023-08-15 广告
2023-08-15 广告
通常情况下,我们会按照结构模型把系统产生的数据分为三种类型:结构化数据、半结构化数据和非结构化数据。结构化数据,即行数据,是存储在数据库里,可以用二维表结构来逻辑表达实现的数据。最常见的就是数字数据和文本数据,它们可以某种标准格式存在于文件...
点击进入详情页
本回答由光点科技提供
展开全部
我公司是做软件的 也设计到数据库的设计 刚好你说的 我们已经设计好了 而且我们不仅有你说的这些还有其他的
那么现在就说说你应该怎么做吧:需要3个表
第一:用户表 主要字段 id,name,age
第二:角色表 主要字段id,name
第三:用户角色表 table_userrole 主要字段:id,userid,roleid
说明:userid关联用户表的id,roleid关联角色表的id
好处:扩展性好 一个用户对应一个角色或对应多个角色没什么区别 便于管理 而且都是通过id管理(id一般是主键 有聚集索引 速度也快)
有问题可以随时找我 希望解决了楼主的问题
那么现在就说说你应该怎么做吧:需要3个表
第一:用户表 主要字段 id,name,age
第二:角色表 主要字段id,name
第三:用户角色表 table_userrole 主要字段:id,userid,roleid
说明:userid关联用户表的id,roleid关联角色表的id
好处:扩展性好 一个用户对应一个角色或对应多个角色没什么区别 便于管理 而且都是通过id管理(id一般是主键 有聚集索引 速度也快)
有问题可以随时找我 希望解决了楼主的问题
追问
那么表的主键是设置为自动增长好,还是采用UUID这种形式的比较好呢?
追答
是的 让他自动增长
然后通过主外键关系 约束 以免产生垃圾数据
明白不?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
根据E-R模型,用户和角色是多对多的关系,所以,需要另建一张表保存他们之间的关系,才可以达到3NF。架构合理,扩展性才好,生命力才强
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加字段比较好,效率会高,但如果mapping的重复很高的话,会造成空间浪费,不过如果数据量小的话,无所谓了
追问
加字段的话,会不会在进行CRUD操作时出现繁琐!,例如删除时,需要先删除关系,那么操作起来是否会带来麻烦!
追答
不会啊,只有你不加主外键关系就可以了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
只保留对方表的主键ID 就可以了,设置外键
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询