一个系统有很多的配置项,该怎么存到同一张表中?

2023-01-17 16:14:16 +08:00
 cgglyle

问题详情

现在有一个系统有很多的配置选项,但是需要灵活变动。现在的想法是存到 Mysql 中的同一张表中。

因为配置项的类型各不相同,有 boolean, String 等类型,在一张表上就很难编写,提取到 Java 中也不好变成相应的类型。

有没有什么简单的方式或者更加优雅一点的方式实现这个需求?

1057 次点击
所在节点    问与答
11 条回复
ila
2023-01-17 16:19:04 +08:00
keyname,keyval,keytype
cgglyle
2023-01-17 16:25:09 +08:00
@ila #1 最开始是这样想得,不过要编写类型转换代码有些麻烦
murmur
2023-01-17 16:26:04 +08:00
@cgglyle 不需要搜索的东西存 json 字符串有什么影响呢?
hefish
2023-01-17 16:27:49 +08:00
我觉着搞个配置中心更简单吧。
murmur
2023-01-17 16:27:53 +08:00
java 的设计就没考虑你的类型舒适度,那么多容器类都是 getInteger ,getString ,getBoolean ,要不就是(String)getObject
cgglyle
2023-01-17 16:29:27 +08:00
@murmur #3 需要搜索展示调整,比如系统是否锁定之类的
simplereasy
2023-01-17 17:37:39 +08:00
存在 redis 里?
dengji85
2023-01-17 17:49:25 +08:00
求值引擎,把配置存储为表达式,就不需要转类型了
R18
2023-01-17 17:50:58 +08:00
底层一张 config 表 title jsonValue
具体读值是通过 Redis 并且做好自动加载
TravisMtg
2023-01-18 01:26:23 +08:00
这感觉就是 nacos 这类配置中心的功能吧,可能有更轻量点的,op 可以往这方向看看
MaxFang
2023-01-18 09:44:45 +08:00
简单点的话就统一用 json 存数据库,里面定一些标准字段。即使有搜索需求,单纯的配置信息即使数据库查也还好吧,一般再放 redis 也行呀。

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

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

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

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

© 2021 V2EX