首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数据库(Xml,Json)中存储键值或一对多的用户设置?

问如何在数据库(Xml,Json)中存储键值或一对多的用户设置?
EN

Stack Overflow用户
提问于 2014-01-15 08:46:08
回答 2查看 1.1K关注 0票数 2

我们是否应该以序列化的方式将应用程序键值设置数据保持为db,比如XML或JSON格式。(例如,用户设置数据可以以序列化方式保存在单个nvarchar(2000)列中)

或者,我应该将它们保留为表,列如下所示

用户ID、设置名称、设置值

  1. 123,AssignedQuiz,科学
  2. 123,AssignedQuiz,数学
  3. 456号,AssignedQuiz,地球
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-01-15 08:50:33

在以序列化方式存储时,很难更新其中的单个值。相反,每次都需要更新列。

如果您存储在表基中,那么很容易更新单个行或从表中检索它。

您可以将结构定义为:

表:setting

列(设置,setting_name,setting_value)

表:user_settings

列(用户标识,设置)

票数 1
EN

Stack Overflow用户

发布于 2014-01-17 06:43:14

最后的结构,但这个结构是否可以扩展到1000万用户*100设置=10亿设置Mysql?是的会的!

SettingType表

代码语言:javascript
复制
   SettingTypeId    UNSIGNED SMALLINT(2)
    SettingName VARCHAR(100)
    SettingDescription  VARCHAR(300)
    Created DATETIME
    LastUpdated TIMESTAMP
    CreatedBy   UNSIGNED INT(4)
    ModifiedBy  UNSIGNED INT(4)
    Deleted BIT
    Disabled    BIT
    RecordVersion   UNSIGNED INT(4)

最终结构:-

设置表

代码语言:javascript
复制
   SettingId    UNSIGNED INT(4)
    SettingTypeId   UNSIGNED SMALLINT(2)
    UserId  UNSIGNED INT(4)
    SettingValue    VARCHAR(1000)
    Created DATETIME
    LastUpdated TIMESTAMP
    CreatedBy   UNSIGNED INT(4)
    ModifiedBy  UNSIGNED INT(4)
    Deleted BIT
    Disabled    BIT
    RecordVersion   UNSIGNED INT(4)
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21132686

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档