服务器端排序/过滤规范化数据

时间:2016-05-28 06:05:25

标签: java sorting database-design backend

我的问题是表结构,代码和UI服务器端处理的最佳设计。

根据我的理解,如果我选择客户端处理,数据应该更少,可能是几千条记录,那很好。

但是当数据量很大时,我们需要进行服务器端处理,然后出现问题,大多数数据应该保持标准化形式以获得更好的存储结构,但UI需要非规范化形式以便更好地进行过滤和排序。 如果我保持数据规范化,我可以更改值但是为了读取,我需要连接并对这些连接进行排序/过滤。

保持数据支持服务器端处理的最佳方法是什么。 我想考虑一下我们有一个表code_table(代码,值)和另一个表data_table中的每个数据记录的情况,经过一些编辑后,我们将它与code_table中的代码相关联。

现在我们需要在UI上显示代码值并对其进行排序/过滤。我们有10-15个这样的表格。

1 个答案:

答案 0 :(得分:0)

以下是我想提出的一些建议,可能会帮助您做出决定:

  • 加入:通常只需要几个连接即可获得最终结果,只要行数达到数百万。您可以通过使用正确的索引来优化它们。除非,有特殊原因你不想绝对使用连接,我强烈希望你使用Normalized结构并加入。这将为您提供最大的灵活性。做一些基准测试,看看你可以扩展到多远。
  • 取消规范化:如果您认为您的加入查询无法根据您的负载进行扩展,那么这应该是一个选项。对数据进行标准化将意味着您可以具有插入/更新/删除不一致性。但这并不意味着它不能(或不应该)完成。您将不得不在服务器端代码中花费一些额外的努力来确保这些不一致性不会蔓延,但除此之外您应该没问题。