0

我正在开展一个项目,我们正在确定多个批发商后端系统接口的规范。这是我们正在使用的,

  1. 每个批发商都有多种产品,超过 10,000 种。每个批发商都为其产品定制了价格。
  2. 未来被访问的批发商列表将继续增长,因此系统可能会访问 1000 家批发商。
  3. 批发商在地理上分散。
  4. 该系统的界面将允许用户选择他们想要的批发商并浏览他们的产品。
  5. 产品价格更新应实时反映在网站上。因此,如果批发商更新价格,它应该立即在网站上可用。
  6. 系统应该与数据库无关。
  7. 该系统应该易于在批发商端设置,并且对他们的日常活动的干扰最小。

最初,我考虑为我们端的每个批发商创建数据库,但未来可能有 1000 家批发商,就性能和存储而言,这是最佳选择吗?直接查询批发商数据库而不是在本地存储他们的数据会更好吗?我们可以做到这一点并且仍然保持与数据库无关吗?这种实现的最佳技术堆栈是什么?我需要某种 ORM 工具。

首选基于 Java 的框架和技术。

谢谢。

4

1 回答 1

0

如果您想创建一个可以切换数据库的软件,我建议您使用Hibernate(如果您使用 .Net,则使用NHibernate )。

Hibernate 是一个不依赖于特定数据库的 ORM,这使您可以非常轻松地切换数据库。它已经在大型应用程序中得到证明,并且很好地集成在Spring 框架中(但也可以在没有 Spring 框架的情况下使用)。(如果使用 .Net,则Spring.net等效)

Spring 是构建大型可扩展应用程序(包含 IoC-Container、数据库访问层、事务管理、支持 AOP 等等)的良好技术栈。

Wiki 为您提供了一个简短的概述:

http://en.wikipedia.org/wiki/Hibernate_(Java )

http://en.wikipedia.org/wiki/Spring_Framework

直接查询批发商数据库而不是在本地存储他们的数据会更好吗?

这取决于访问远程数据的可用性和延迟。数据库本身有多种可能性可以通过多个服务器实例使它们保持同步。问问自己,如果批发商数据库(部分)离线,应该/会发生什么。也许并非所有数据都需要复制。

我们可以做到这一点并且仍然保持与数据库无关吗?

是的,请参阅我与 ORM (N)Hibernate 相关的答案。

这种实现的最佳技术堆栈是什么?

“最佳”取决于您的要求。我喜欢春天。如果您使用 .Net,内置的 ADO.NET 实体框架也可能适合。

于 2012-12-19T15:54:39.337 回答