系统存在大量标签定义分散在代码和数据库中,有什么好的办法进行统一/规范化么?

2021-06-03 17:03:15 +08:00
 palexu

现状:

1 、标签存在于常量类或枚举类中,以供业务代码引用:

后端代码中会引用标签,具体业务场景比如:

1 ) if 条件判断

2 )满足某情况 1 时,需要输出(tagA+tagB+tagC);而满足情况 2 时,输出(tagE+tagF+tagB)

相当于将这些知识以符号定义的形式存储于后端代码当中(可以理解为配置文件)。且此类配置定义量大且偶尔发生变化,且由于人工维护,要求可读性比较强,因此也不考虑放入数据库中。(否则线下、线上环境同步,以及配置变更时的修改问题非常头疼)

前端代码中会对标签进行一些判断处理,因此也会自己维护一套枚举

2 、标签也存在于数据库中

因为标签本身会新增,所以枚举文件和数据库也会发生变动

标签表与其他数据库表有关联。

需求:

对标签进行统一 /规范化, 避免出现数据库和代码定义不一致、前端与后端不一致等情况,同时实现方式尽量优雅

求解

我先写下自己的想法,抛砖引玉,希望各位大佬给些建议:

标签一律在数据库中维护, 同时开发一个工具,解析数据库数据,生成 java 、js 等枚举类代码,发布到公司 maven 仓库等形式,提供其他系统进行引用。

1059 次点击
所在节点   科技
10 条回复
WizardMeow
2021-06-04 00:50:11 +08:00
protobuf
palexu
2021-06-04 10:07:34 +08:00
@WizardMeow 感谢~
刚去学习了一下:定义 proto 文件,一键生成多语言代码,可以方便其他系统引用。这样就省去造轮子时间了~
不过“查询数据库结果集,生成 proto 文件” 这一步骤,刚找了下没看到有对应工具,这个就得自己开发了是吧?
zhangdszq
2021-06-18 08:01:40 +08:00
我们会有业务代码引用标签进行判断,比如给用户打标签 “禁止登陆”, 那么登陆时标签存在就禁止登陆,不知道场景是否类似?
palexu
2021-06-18 10:44:48 +08:00
@zhangdszq 类似。
不过涉及的系统,会根据数百个标签进行逻辑判断,最后输出一个结果值。
而这些标签的定义在多个系统都有使用, 因此需要妥善管理起来。
zhangdszq
2021-06-19 00:29:01 +08:00
@palexu 我正在做类似的东西 不如加个 qq 讨论下 ?看看场景适用不? 完善后准备开源
zhangdszq
2021-06-21 12:00:02 +08:00
zhangdszq
2021-06-21 12:00:19 +08:00
zhangdszq
2021-06-21 12:01:24 +08:00
不知道如何添加图片,你看看这个吧
https://files.catbox.moe/apawl4.png

https://files.catbox.moe/ltmmou.png
palexu
2021-06-21 15:33:52 +08:00
@zhangdszq 谢谢,
基于你发的图片来看,你的系统侧重于在网页上直接配置 tag,以及 tag 的关系。我理解的话是类似规则引擎的系统。
我们的侧重点不太一样。我的需求是如何更好的维护 tag 元信息。具体的规则是在项目代码中进行。

感谢回复~
zhangdszq
2021-06-21 17:09:27 +08:00
@palexu OK

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

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

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

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

© 2021 V2EX