Java 用于规范化数据的服务器端排序/筛选
我的问题是什么是表结构、代码和UI服务器端处理的最佳设计 根据我的理解,如果我选择客户端处理,数据应该更少,可能只有几千条记录,这很好 但当数据量很大时,我们需要进行服务器端处理,然后问题就出现了。为了更好地存储结构,我们应该以规范化的形式保存大多数数据,但UI需要非规范化的形式,以便更好地过滤和排序。 如果我保持数据规范化,我可以更改值,但对于读取,我需要连接并对这些连接进行排序/筛选 保存数据以支持服务器端处理的最佳方法是什么。 想考虑我们有一个表代码表(代码,值)的情况,对于另一个表数据表中的每个数据记录,在一些编辑之后,我们将它与来自代码表的这样的代码联系起来。Java 用于规范化数据的服务器端排序/筛选,java,sorting,database-design,backend,Java,Sorting,Database Design,Backend,我的问题是什么是表结构、代码和UI服务器端处理的最佳设计 根据我的理解,如果我选择客户端处理,数据应该更少,可能只有几千条记录,这很好 但当数据量很大时,我们需要进行服务器端处理,然后问题就出现了。为了更好地存储结构,我们应该以规范化的形式保存大多数数据,但UI需要非规范化的形式,以便更好地过滤和排序。 如果我保持数据规范化,我可以更改值,但对于读取,我需要连接并对这些连接进行排序/筛选 保存数据以支持服务器端处理的最佳方法是什么。 想考虑我们有一个表代码表(代码,值)的情况,对于另一个表数据表
现在我们需要在UI上显示代码值,并在其上进行排序/筛选。我们有10-15张这样的表格。以下是我想建议的几件事,也许它们会帮助你做出决定:
- 连接:只要行数达到数百万,通常只有几个连接来获得最终结果并不是什么大问题。您可以通过使用正确的索引来优化它们。除非有特别的原因你不想使用连接,我强烈建议你使用规范化的结构和连接。这将给你最大的灵活性。做一些基准测试,看看你能扩展到什么程度李>
- 反规范化:如果您认为您的连接查询无法随负载进行扩展,那么这应该是一个选项。使用非标准化数据意味着您可能存在插入/更新/删除不一致。但这并不意味着不能(或不应该)这样做。您必须在服务器端代码中进行一些额外的工作,以确保不会出现这些不一致的情况,但除此之外,您应该没事李>
- 以下是我想提出的几点建议,它们可能会帮助您做出决定:
- 连接:只要行数达到数百万,通常只有几个连接来获得最终结果并不是什么大问题。您可以通过使用正确的索引来优化它们。除非有特别的原因你不想使用连接,我强烈建议你使用规范化的结构和连接。这将给你最大的灵活性。做一些基准测试,看看你能扩展到什么程度李>
- 反规范化:如果您认为您的连接查询无法随负载进行扩展,那么这应该是一个选项。使用非标准化数据意味着您可能存在插入/更新/删除不一致。但这并不意味着不能(或不应该)这样做。您必须在服务器端代码中进行一些额外的工作,以确保不会出现这些不一致的情况,但除此之外,您应该没事李>