domty
V2EX  ›  Java

如何设计单条配置信息数据的表结构

  •  
  •   domty · Nov 3, 2015 · 3202 views
    This topic created in 3888 days ago, the information mentioned may be changed or developed.

    项目里有一系列的配置信息,
    比如设置用户注册时候的字段,有用户名,密码,邮箱,电话,地区等。
    现在需要配置一条信息,确定哪些字段在注册的时候是必填的。
    配置信息结构类似 username:true,password:true 这样(key:value)的形式

    这样的一系列配置信息系统中永远有且只有一条
    如何设计表结构更合理?

    我个人不大喜欢以 key 为表头以 value 值存单条字段的方法,因为感觉这样在系统扩展字段增多的情况下会影响原有代码

    如果单纯存 key : value 段的话更新操作可能就要一次性更新多条数据。
    或者将 key:value 对做成 json 字符串存进库里

    有没有什么更好的方法

    3 replies    2015-11-03 19:16:53 +08:00
    vivisidea
        1
    vivisidea  
       Nov 3, 2015   ❤️ 1
    就两个字段吧
    key, value
    value 存成字符串
    例如

    key value
    register.restrict {"username": true, "password": true}

    具体 value 交给程序去解析
    这个表就用来存所有的系统配置
    raofr
        2
    raofr  
       Nov 3, 2015   ❤️ 1
    你的库是传统关系型数据库的话,而且要单条存的话, json 是一条路;
    如果觉得 json 重的话,就自定义格式用“ key1:value1,key2:value2,key3:value3 ”来存到一个字段,然后读数据库的时候,用 split 来解决。

    这里库如果是指 NoSQL ,比如 mongodb 的话,就简单了,天然支持 json 。
    Ouyangan
        3
    Ouyangan  
       Nov 3, 2015
    @raofr mysql5.7 支持 json 了
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   894 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 20:07 · PVG 04:07 · LAX 13:07 · JFK 16:07
    ♥ Do have faith in what you're doing.