cgglyle
V2EX  ›  问与答

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

  •  
  •   cgglyle · Jan 17, 2023 · 2035 views
    This topic created in 1348 days ago, the information mentioned may be changed or developed.

    问题详情

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

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

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

    11 replies  •  2023-01-18 09:44:45 +08:00
    ila
        1
    ila  
       Jan 17, 2023 via Android
    keyname,keyval,keytype
    cgglyle
        2
    cgglyle  
    OP
       Jan 17, 2023
    @ila #1 最开始是这样想得,不过要编写类型转换代码有些麻烦
    murmur
        3
    murmur  
       Jan 17, 2023
    @cgglyle 不需要搜索的东西存 json 字符串有什么影响呢?
    hefish
        4
    hefish  
       Jan 17, 2023
    我觉着搞个配置中心更简单吧。
    murmur
        5
    murmur  
       Jan 17, 2023
    java 的设计就没考虑你的类型舒适度,那么多容器类都是 getInteger ,getString ,getBoolean ,要不就是(String)getObject
    cgglyle
        6
    cgglyle  
    OP
       Jan 17, 2023
    @murmur #3 需要搜索展示调整,比如系统是否锁定之类的
    simplereasy
        7
    simplereasy  
       Jan 17, 2023
    存在 redis 里?
    yangwa
        8
    yangwa  
       Jan 17, 2023
    求值引擎,把配置存储为表达式,就不需要转类型了
    R18
        9
    R18  
       Jan 17, 2023 via Android
    底层一张 config 表 title jsonValue
    具体读值是通过 Redis 并且做好自动加载
    TravisMtg
        10
    TravisMtg  
       Jan 18, 2023 via iPhone
    这感觉就是 nacos 这类配置中心的功能吧,可能有更轻量点的,op 可以往这方向看看
    MaxFang
        11
    MaxFang  
       Jan 18, 2023
    简单点的话就统一用 json 存数据库,里面定一些标准字段。即使有搜索需求,单纯的配置信息即使数据库查也还好吧,一般再放 redis 也行呀。
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Privacy   ·   Solana   ·   2741 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 127ms · UTC 01:49 · PVG 09:49 · LAX 18:49 · JFK 21:49
    ♥ Do have faith in what you're doing.