通过查询自动进行非规范化

时间:2017-07-28 02:40:59

标签: denormalization database nosql

我想知道是否可以通过特定的类似SQL的查询创建一个自动创建非规范化表及其数据(并维护它)的逻辑。

给定一个用户可以维护其数据模型和数据的系统。所有数据都存储在“关系”表中,但这些表仅用于用户维护其数据。如果他想在网页上显示数据,他必须编写一个查询(SQL),该查询将自动转换为非规范化表,并在更新/删除关系数据时保持最新状态。

假设我得到了这样的查询:

sbt compile

逻辑将根据查询自动创建一个带有所需数据副本的非规范化表。它主要是一个视图(我想知道观点是否比我的方法更高效)。一旦某个业务逻辑需要这个查询(给它一个名字),它就会被新表上的一个简单查询所取代。

t1中的任何更新都将搜索涉及t1的所有查询并自动更新非规范化数据,但是为了获得性能,它只会更新受感染的行(在此示例中只有一行)。这就是我不确定它是否可以自动实现的点。示例查询很简单,但是如果有连接,聚合甚至子查询的查询呢?

在NoSQL世界中是否存在这样的方法,也许有人可以分享他的经验吗?

我还想知道在使用NoSQL数据库时,每个查询创建一个表是否与任何最佳实践冲突。

我知道如何通过在更新数据时通过主键查找所涉及的实体并再次在该特定实体上运行查询来解决简单查询(这样也可以更新连接)。但是对于聚合和子查询,我真的不知道如何确定涉及哪个非规范化表的实体。

0 个答案:

没有答案