mysql - 配置数据 - JSON 存储在表中与单个字段中

标签 mysql json database architecture

我有一个表 A,其中包含表单的定义/配置(字段、显示信息等)。我对该表进行查找以确定所显示的表单是什么样子的。我们还动态创建表来保存该表单或记录中指定的数据。

在与其他开发人员合作时,曾两次建议将 JSON 格式的字段信息存储在表 A 的单个字段中,而不是单独的字段进行配置。

我主要关心的是性能。我们正在从表 A 中检索行信息,或者我们正在从表 A 中检索行信息并在客户端中解析它。

就性能而言,哪个更好?在代码重用方面?

最佳答案

简短的回答是肯定的,将配置存储为序列化的 JSON 文档将为您提供更改和传播更改的灵活性,并且可能使用更少的代码。理想情况下,让客户端进行反序列化,

假设文档相当小(<5K),处理成本可以忽略不计,并且只要您的访问模式是基于键/值的,数据库性能应该与通过主键访问任何其他行没有什么不同。确保为该键建立索引。

但更广泛地说,我会考虑以下内容,

  • 此场景的文档存储(用于配置和数据)。
  • 考虑将架构定义与用户/系统首选项分开。
  • 按键对数据进行分片(这将替代创建单独的表)

关于mysql - 配置数据 - JSON 存储在表中与单个字段中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29238257/

相关文章:

java - 修改具有 jsonpath 的 Json

javascript - JS+REST+NodeJS : How to parse a JSON list from a JSON object

node.js - `db.serialize` 在 `node-sqlite3` 中是如何工作的

node.js - 在 Sequelize 中创建对象字段

php - 如何使用 PHP 4 防止 $_POST 电子邮件字段的 SQL 注入(inject)

mysql - 如何查找一年内的标题变化

json - Newtonsoft.Json.Linq.JArray.GetEnumerator() 方法未找到

mysql - 在 GROUP BY() 之后过滤数据,反之亦然?

mysql - 从 3 个表中选择行

mysql - 尝试插入belongsToMany关系