V2EX = way to explore
V2EX 是一个关于分享和探索的地方
Sign Up Now
For Existing Member  Sign In
cgglyle
V2EX  ›  问与答

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

  •  
  •   cgglyle · Jan 17, 2023 · 1676 views
    This topic created in 1198 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 里?
    dengji85
        8
    dengji85  
       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   ·   Solana   ·   5405 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 46ms · UTC 09:04 · PVG 17:04 · LAX 02:04 · JFK 05:04
    ♥ Do have faith in what you're doing.