首页 > 解决方案 > SQL 存储为 JSON 与向表中添加字段

问题描述

在 SQL 数据库中,将只显示您不会搜索的值存储为 JSON 对象字符串而不是为每个对象的属性添加额外的列有什么好处?

前任:

col1|col2|jsonString
--------------------
1   |1   |{prop1:A,prop2:B,prop3:C}

VS

col1|col2|prop1|prop2|prop3
---------------------------
1   |1   |A    |B    |C

就使用的内存或其他方面而言,一个比另一个更有效吗?如果您能提供也将不胜感激的资源。谢谢。

标签: sqljson

解决方案


当您不打算搜索时,将信息存储在 JSON 中的一个好处是避免架构更改。例如,您有一个允许用户存储其偏好的应用程序。这些偏好会随着时间的推移而增长。不同的用户设置不同的偏好,通常将其中一些设置为默认或空白。

如果您要为每个首选项创建一个字段,那么每当必须添加/删除首选项时,您都必须处理架构更改。如果您有一个存储此类首选项的 JSON 字段,您将在添加/删除首选项方面具有更大的灵活性。

如果您的应用程序语言可以轻松使用 JSON,那么应用程序询问 UserID 1 的首选项并解析 JSON 将变得非常容易。


推荐阅读