【发布时间】:2018-07-20 07:56:32
【问题描述】:
我目前正在研究几种解决方案,以重新设计基于该应用程序和其他正在运行的服务之间共享的数据库的 Web 应用程序。
实际应用程序使用NodeJS,基本上是在从数据库中的表中提取过多信息后处理数据。我认为这是错误的,因为我们应该只向数据库询问我们需要的数据,并限制服务器上的处理,因为这些过程意味着最终用户的加载时间很长。 所以我想我会构建一个 Java API,它会使用应用程序前端可以轻松使用的对象,并使用 Hibernate 或等效组件从数据库中提取必要的信息。
但问题是我将在其上构建此 API 的数据库虽然应该是关系型的(它是 postgreSQL),但实际上是由彼此之间不通信的表组成的:表之间没有连接,因此没有级联修改相关对象。此外,这些表不直接对应于应用程序中使用的对象。它们更像是在 Java 模型中包含其他子对象的“超级对象”。
问题是,我无法重新创建一个“更干净”的数据库,因为它被其他服务使用(顺便说一下,这可能就是它组织得如此奇怪的原因)。我应该按原样使用它,并将重新设计的应用程序映射到它。我可以被允许重新设计一些表以使它们“更具关联性”,但这对其他服务应该没有影响。这意味着要彻底重写一些 SQL 函数,我不确定它是否是一个非常有效的解决方案。话虽如此,我在编写 SQL 函数方面不是很有经验,所以也许这最终可以成为一个解决方案。
所以,简而言之,我可以做些什么来使用 Java 或您能想到的任何其他技术构建一个面向对象的模型,以正确地重新设计应用程序,而无需丢弃数据库或大幅修改它?
任何建议或研究领导将不胜感激。另外,如果我不够精确,请告诉我,我会努力改进我的问题。
【问题讨论】:
标签: java database postgresql