大家怎么看待数据字典,你们的项目里引入数据字典了吗

2023-02-07 11:08:39 +08:00
 sma11hao
4181 次点击
所在节点    程序员
32 条回复
wetalk
2023-02-07 17:12:50 +08:00
@infun 配置中心,和数据字典两码事儿喔
james2013
2023-02-07 17:16:56 +08:00
有的,很方便,避免字典值增删导致前后端发版,也避免了前端手写名称和值可能产生的问题
数据库专门有表记录字典名称和值,提供 1 个字典接口给前端查询
前端根据这个接口进行查询和展示
如果某个字典要增加或者减少 1 个值,前后端代码都不需要改,只需要在表里增加或者删除该值就可以了
theguagua
2023-02-07 17:26:20 +08:00
@james2013 一般会做成后台管理配置的,每个人都写表也太麻烦些
litchinn
2023-02-07 17:32:30 +08:00
动态的都应该走数据字典呀,避免由于产品在这些东西上的改动导致要重新编码部署,这和使用动态的路由菜单我觉得是一个道理。
但是楼上说的有逻辑处理的时候,比如要 switch 判断的时候,还是得写个枚举,在这一点上确实没啥好办法(也有可能我目前还没了解到更优秀的设计)。但是枚举的话最好也是前端从后端获取,这样改动的时候后端改就行了,减少工作和 BUG 。
OP 说到的多个系统直接同步的问题,这个好像也只有靠规范了
Bingchunmoli
2023-02-07 18:47:47 +08:00
@lizy0329 入门使用 ruoyi 就知道这东西了
nothingistrue
2023-02-07 19:33:53 +08:00
这东西的重点不是用不用,而是如何管理。不管你用数据库+界面配置字典,还是常量配置字典,还是专用工具配置字典,一旦不妥善管理,一段时间后都不如手写键值对方便。

通常,有 UI 的,code-name 键值对的场景是非常常见的,用数据字典统一管理会更方便点,当然具体上还要看你的需求。“数据字典+后台只保存 code”的好处是便于全局统一管理,但是跟业务的贴合度不一定好,尤其是到了一个 code 不止有 name ,还有其他属性的时候。另外对于静态数据,用硬编码的枚举会更好。
soupu626
2023-02-07 20:18:48 +08:00
以前看过某 ERP 系统,数据库都是大宽表,搞元数据甚至元元数据,实际存储的字段都是 column+数字编号这种命名
invisibleUser
2023-02-07 20:24:28 +08:00
@PEax 不太明白,比如下拉接口我需要显示{0:'未选择';1:'男';2:'女'};列表我需要显示:{0:'-';1:'男';2:'女'};这种 0 下标有差异化不还是要前端自己去判断吗,这种情况后端该如何返回
xuanbg
2023-02-07 22:35:13 +08:00
只做业务数据字典。做在公共基础数据中台里面,有个界面交给业务自己维护。
treeAgain
2023-02-08 10:41:48 +08:00
@lscho 事实是 确实是字典变化,前后端需要同步发版,看了一下帖子,基本都是站在服务端视角去评论的,认为只要给了字典数据就可以,事实是前端不只是下拉框的展示,也有逻辑业务
我就举个简答的例子:给了 {0: ‘未完成’,1: ’已完成‘,2: ‘已取消’}
1. 假如现在要加个 {3: '超时完成'},前端根据这个 3 去做展示或隐藏,你说需不需要发版
2. 假如现在 0 变成了 超时未完成,那这个前端需不需要发版
mynameislihua
2023-02-08 10:48:46 +08:00
@PEax 汉得是吧,我有朋友在那边做前端
lscho
2023-02-08 11:19:15 +08:00
@treeAgain 因为大家提到数据字典隐含的意思就不含逻辑啊,就是 key-value 的映射。。。。如果包含逻辑变化,那就不仅仅是数据字典的变化了,那是业务变化导致数据字典变化,必然要发版。

大家讨论的数据字典是,比如 0 代表已结束,字典变化修改为已完结,这种。你说的 0 原本是已结束,变更为 0=待评价,这是逻辑发生变化了。

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

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

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

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

© 2021 V2EX