【问题标题】:Storing JSON data in a database column将 JSON 数据存储在数据库列中
【发布时间】:2014-06-25 21:05:27
【问题描述】:

我有一个场景,其中“parameter_id”是数据库中的一列,另一列是“parameter_value”。 现在 - “parameter_value”可以包含键值对,这些键值对主要是参数的元数据,除了一个实际值。将此结构作为 JSON 存储在“parameter_value”列中是个好主意吗?这里的问题是元数据键值对的数量可能因每个参数而异。 JSON 会是存储数据的好设计吗?

我在下面提供数据样本

例如。

parameter_id  :::: parameter_value
============================

distance      :::: {value : 10 , run : 5, walk : 5 }
------------------------------------------

bloodPressure :::: {value : 85 , systol : 120 , disatol : 80, beforeExam : 180, afterExam : 60 }
------------------------------------------------------------------------

【问题讨论】:

  • 这不是做事的方式。如果不明确读取和解析,您将无法操作存储在 JSON 字符串中的数据。将数据分解为数据库的本地组件。对于 SQL,您将有一个列中包含距离参数的表和一个将行与其父级相关联的 ID 列。对于血压或任何其他参数也是如此。如果您不使用 SQL,请使用任何可以让您直接访问数据的结构。
  • 谢谢@MikeW,所以如果我理解正确,你的意思是我应该有单独的列值,考虑距离参数运行和步行?
  • 这就是它的精髓,但你已经标记了nosql,所以列可能不是正确的术语。

标签: json database data-structures nosql


【解决方案1】:

我不明白——只要你要保存的数据有一定的灵活性和变化——为什么将数据存储为 JSON 不应该是一个好主意。如果有的话,它可以让您免于重组关系数据库带来的麻烦,而是让您通过解析 json 来操作数据。根据您的示例数据,您似乎可以利用 JSON 和 nosql 的组合可以为您提供的优势 - 特别是如果您不喜欢处理 sql 的僵化。

编辑:尽管迈克对您的问题的评论值得考虑——按照您建议的方式进行操作需要您在解析和读取 json 时做一些工作,因为您无法直接编辑或更改值。

【讨论】:

  • 谢谢@Bischoff,你能指点一下 JSON-noSQL 组合吗?也只是让您知道,我的门户将只显示我正在存储的数据,并且不会进行任何编辑
  • 要对 nosql 和 json 进行很好的回顾,我建议您查看 this 文本。显然,nosql (部分)旨在处理大量(看似)任意数据和大量流量——这些因素可能与您的使用没有太大关系,但是嘿……尝试新事物总是很有趣,不是吗?
  • 当然@Bischoff,在接下来的 2 年后显然很有用 :)
猜你喜欢
  • 2023-03-05
  • 1970-01-01
  • 2020-01-15
  • 1970-01-01
  • 1970-01-01
  • 2021-06-10
  • 1970-01-01
  • 1970-01-01
  • 2022-11-15
相关资源
最近更新 更多