Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/389.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 用于规范化数据的服务器端排序/筛选_Java_Sorting_Database Design_Backend - Fatal编程技术网

Java 用于规范化数据的服务器端排序/筛选

Java 用于规范化数据的服务器端排序/筛选,java,sorting,database-design,backend,Java,Sorting,Database Design,Backend,我的问题是什么是表结构、代码和UI服务器端处理的最佳设计 根据我的理解,如果我选择客户端处理,数据应该更少,可能只有几千条记录,这很好 但当数据量很大时,我们需要进行服务器端处理,然后问题就出现了。为了更好地存储结构,我们应该以规范化的形式保存大多数数据,但UI需要非规范化的形式,以便更好地过滤和排序。 如果我保持数据规范化,我可以更改值,但对于读取,我需要连接并对这些连接进行排序/筛选 保存数据以支持服务器端处理的最佳方法是什么。 想考虑我们有一个表代码表(代码,值)的情况,对于另一个表数据表

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

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

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

保存数据以支持服务器端处理的最佳方法是什么。 想考虑我们有一个表代码表(代码,值)的情况,对于另一个表数据表中的每个数据记录,在一些编辑之后,我们将它与来自代码表的这样的代码联系起来。
现在我们需要在UI上显示代码值,并在其上进行排序/筛选。我们有10-15张这样的表格。

以下是我想建议的几件事,也许它们会帮助你做出决定:

  • 连接:只要行数达到数百万,通常只有几个连接来获得最终结果并不是什么大问题。您可以通过使用正确的索引来优化它们。除非有特别的原因你不想使用连接,我强烈建议你使用规范化的结构和连接。这将给你最大的灵活性。做一些基准测试,看看你能扩展到什么程度
  • 反规范化:如果您认为您的连接查询无法随负载进行扩展,那么这应该是一个选项。使用非标准化数据意味着您可能存在插入/更新/删除不一致。但这并不意味着不能(或不应该)这样做。您必须在服务器端代码中进行一些额外的工作,以确保不会出现这些不一致的情况,但除此之外,您应该没事
      以下是我想提出的几点建议,它们可能会帮助您做出决定:

      • 连接:只要行数达到数百万,通常只有几个连接来获得最终结果并不是什么大问题。您可以通过使用正确的索引来优化它们。除非有特别的原因你不想使用连接,我强烈建议你使用规范化的结构和连接。这将给你最大的灵活性。做一些基准测试,看看你能扩展到什么程度
      • 反规范化:如果您认为您的连接查询无法随负载进行扩展,那么这应该是一个选项。使用非标准化数据意味着您可能存在插入/更新/删除不一致。但这并不意味着不能(或不应该)这样做。您必须在服务器端代码中进行一些额外的工作,以确保不会出现这些不一致的情况,但除此之外,您应该没事
      您好,Mustafa,我同意您的意见,但我想知道这些是唯一的方法和最好的方法,还是有更好的方法,正如我提到的,有10-15个表格。在de nom form中,如果我提供了更新或插入的功能,那么它应该在相同的表中更新,或者应该有一个同步过程来将我的规范化表同步到de nom form。IMO,基于SQL的DBs提供了最大的灵活性,因此,除非你能证明它不会扩展,否则你应该使用规范化设计。sqldbs已经存在很长时间了,并且非常成熟。它们可以为您提供许多您需要(或将来需要)的功能。如果您使用denom表单,您可以就地更新,无需同步IMO。您好,Mustafa,我同意您的意见,但是,我想知道这些是唯一的方法和最好的方法,还是有更好的方法,正如我提到的,有10-15个表。在de nom form中,如果我提供了更新或插入的功能,那么它应该在相同的表中更新,或者应该有一个同步过程来将我的规范化表同步到de nom form。IMO,基于SQL的DBs提供了最大的灵活性,因此,除非你能证明它不会扩展,否则你应该使用规范化设计。sqldbs已经存在很长时间了,并且非常成熟。它们可以为您提供许多您需要(或将来需要)的功能。如果您使用的是denom表单,则可以就地更新,无需同步IMO。