V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
domty
V2EX  ›  Java

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

  •  
  •   domty · 2015-11-03 15:57:25 +08:00 · 2412 次点击
    这是一个创建于 3313 天前的主题,其中的信息可能已经有所发展或是发生改变。

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

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

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

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

    有没有什么更好的方法

    3 条回复    2015-11-03 19:16:53 +08:00
    vivisidea
        1
    vivisidea  
       2015-11-03 18:51:27 +08:00   ❤️ 1
    就两个字段吧
    key, value
    value 存成字符串
    例如

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

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

    这里库如果是指 NoSQL ,比如 mongodb 的话,就简单了,天然支持 json 。
    Ouyangan
        3
    Ouyangan  
       2015-11-03 19:16:53 +08:00
    @raofr mysql5.7 支持 json 了
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5455 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 25ms · UTC 07:22 · PVG 15:22 · LAX 23:22 · JFK 02:22
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.