队伍里的小伙子这样设计表,应该怎么评价

2021-08-27 11:33:07 +08:00
 5sheep

项目里有几个多对多关系,需要表达到关系数据库。

比如:用户 角色 权限; 用户与角色是多对多关系;角色与权限是多对多关系;

一般人会分别创建 [用户角色表]、[角色权限表],来存储多对多关系,这个没啥好说的。

现在队伍里一个小伙子嫌麻烦,就创建了一张 [数据关系表],大致字段有:[第一个 id],[第二个 id],[表名]。

大家分析下,这种做法,要如何评价

13392 次点击
所在节点    程序员
106 条回复
ScotGu
2021-08-27 11:41:04 +08:00
如果一张表就能搞定这个项目,那岂不是应该献上膝盖?
securityCoding
2021-08-27 11:43:31 +08:00
瞎搞
heyjei
2021-08-27 11:43:42 +08:00
多对多的多态关系,如果他能够在 ORM 里面把这种关系配出来,就这样呗。配不出来就老老实实的多建几张表
zjj19950716
2021-08-27 11:44:49 +08:00
让他弄呗 看能玩出什么花样
buliugu
2021-08-27 11:47:25 +08:00
可以命名成数据爆炸表(逃
sy20030260
2021-08-27 11:51:13 +08:00
这种是典型的反规范建模设计,本身是没错的,得看具体的业务场景。
但是 [用户 角色 权限] 这种系统设计,本来就是典型的规范建模,具体到数据库设计又变成反规范的,就有点奇怪了~
levelworm
2021-08-27 11:53:44 +08:00
我擦表中表啊!
ctrlaltdeletel
2021-08-27 11:56:45 +08:00
最终这个模块变成了个图数据系统 XD
bk201
2021-08-27 12:33:10 +08:00
就是将关系类的数据统一放在一个表里了,数据量不大的情况下感觉也没什么问题
yeeli
2021-08-27 12:43:46 +08:00
数据不大都无所谓, 如果你以后是要搽屁股的负责人就提早改,很多时候项目和员工都撑不到爆的那一天
shanghai1943
2021-08-27 12:48:12 +08:00
一表多用了。不合理的设计。
rabbbit
2021-08-27 12:53:49 +08:00
没太看懂,是指他存了这么个表吗?

id1 | id2 | 表名
角色 id1| 权限 id1 | 用户权限表名
角色 id1| 权限 id2 | 用户权限表名
角色 id2| 权限 id1 | 用户权限表名
权限 id1| 角色 id1 | 用户角色表名
k9982874
2021-08-27 13:03:42 +08:00
直接甩他直属领导脸上,问就你招的这么个玩愣?
l00t
2021-08-27 13:05:16 +08:00
不知道你在说什么东西,什么第一个 ID 第二个 ID 表名,人家的字段没实际业务含义的吗?
wolfie
2021-08-27 13:12:41 +08:00
又是当时没怼过,越想越气。
user_role 、role_operation 这类设计较通用的表强行复杂化。
增加他人理解成本,并没有降低什么工作量,大数据量速度还差。
lower
2021-08-27 13:16:42 +08:00
@l00t 看 12 楼的说明😂
cocong
2021-08-27 13:17:08 +08:00
不是你负责的就不用管,你也管不了,瞎操心。
如果出问题了你要跟着背锅的,那就把问题反映给上级,把锅甩出去。
总的来说,如果数据量小,版本迭代慢,那怎么搞都问题。如果数据量大,或者需求经常变动,那后面加班只会越来越多。
fgwmlhdkkkw
2021-08-27 13:18:37 +08:00
我觉得可以优化一下,表名改为数字,挺好的吧……
xiao109
2021-08-27 13:20:37 +08:00
@l00t 应该就是把几个关联关系表合并成一张表,加个 type 字段区分一下。
comoyi
2021-08-27 13:20:38 +08:00
5 张表,用户,角色,用户-角色关系,权限,角色-权限关系

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/798305

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX