我必须决定如何实现动态模式。我会尝试将更多描述放在我的问题所在。
我在最新版本中使用postgres DB,应用程序是用Ruby和Hanami编写的。我需要实现视图,我将在我们的应用程序中显示用户列表(表视图)。首先要求它需要包含动态数据。例如,用户具有name和birth_date,我将此数据存储在Users表中。在其他表中,我存储与用户相关的指标,例如观看次数和评论。这只是数据的一部分。我有更多与我的用户相关的表,我需要将它们加入到一个视图中。它听起来不是很有活力。我知道。但我有另一个要求。我想允许用户将自定义列添加到我的表视图中。
此时我们的表格包含以下预定义列:
name, birth_date, number_of_views, number_of_comments
我们可以添加一些自定义的。
现在变得充满活力。这不是结束。我需要在这些列上添加过滤。因此,例如,如果给定的用户具有我前面提到的列,我应该允许对所有这些列进行过滤(预定义和自定义)。我正在尝试研究如何实现此功能。
现在问题部分:)我正在考虑如何存储这些数据。我正在考虑将其存储为我的postgres中的JSONB列。这个规模大约是5kk的用户。所以这意味着这个表中有5kk行。没那么多。我想知道使用动态过滤器过滤这些数据。我尝试为5kk表做一些基准测试,如果我使用分页(没有索引),它运行良好。为了查询整个数据集,它需要10秒,因此并不完美。
问题
感谢所有答案。我对动态模式没有丰富的经验,所以每个技巧都很有用; P
答案 0 :(得分:0)
我建议使用像mongoDB这样的NoSQL数据库。您的问题陈述需要无模式的文档存储,以支持快速读取。具有强大支持的MongoDB或Couchbase