在表中使用JSON字段,加快一些关系数据库查询 - 一个好主意?

时间:2014-10-03 04:26:49

标签: c# sql json serialization

我已经阅读了一些主题但是,我仍然不确定是好还是坏...

我工作的当前项目有一些自我关系的表。它们用于创建 - 理论上 - 无穷无尽的金字塔,如层次结构,根在顶部,以及引用其父对象的每个其他对象。问题是 - 我们至少有一些方法需要相当深的迭代才能获得所需的数据,例如:我们有一些仓库项目连接到父项目(它是项目的一部分),它连接到连接到主仓库的子仓库 - 如果用户选择该仓库物料,我们希望显示它所连接的主仓库。

我想知道在上述情况下JSON是否可以帮助我们加快主仓库的锁定?我知道我们可以创建简单的类,序列化它然后根据我们的需要使用它,但我不知道它是好还是坏?

我可以看到潜在的好处,但也有潜在的威胁 - 如果有人,例如:手动更新数据库和关系更改,虽然我可以看到一个潜在的解决方法,JSON将会过时 - 我可以比较JSON和数据库中的UpdatedAt和如果它们不同 - 在查询之前重新生成JSON。

您对此类混音的体验是什么?

1 个答案:

答案 0 :(得分:2)

可以在sql数据库中存储非规范化值/结构化字符串,但JSON的问题在于,json中的值具有非常有限的查询功能。 但是,你必须决定这是否是一个限制因素。

SQL Server实际上对xml有更好的支持,但是如果你要存储复杂的json文档,那么考虑一个更适合json结构的nosql选项(MongoDb等)可能是值得的。