SQL存储为JSON与向表添加字段

时间:2019-04-22 18:36:45

标签: sql json

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

EX:

Dim sourcePath As String  'C:\User\MyUser
Dim destinationPath As String  'C:\User\MyUser\AppData\Roaming

sourcePath = Environ("USERPROFILE") & "\Desktop\WindowsApp.exe"
destinationPath = Environ("APPDATA") & "\Microsoft\Windows\Start Menu\Programs\Startup\WindowsApp.exe"

FileSystem.CopyFile(sourcePath, destinationPath)

VS

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

在使用的内存或其他方面,效率比其他效率高吗?如果您可以提供真正值得赞赏的资源。谢谢。

2 个答案:

答案 0 :(得分:1)

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

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

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

答案 1 :(得分:1)

zedfoxus答案是正确的。我想补充一点,如果您打算存储整个JSON文档,则最好查看像MongoDB这样的非关系型数据库,该数据库是为此类目的而设计的。 zedfoxus所陈述的优势仍然存在,并且像MongoDB这样的数据库已经过优化以存储JSON文档。