【问题标题】:Pluggable database interface可插拔数据库接口
【发布时间】:2012-12-19 15:49:56
【问题描述】:

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

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

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

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

谢谢。

【问题讨论】:

  • 您(想要)使用什么样的技术? (C#、Java、...)
  • 我们正在寻找基于 Java 的技术。
  • 啊,那我建议你用Hibernate。喜欢的话别忘了投票... ;-)
  • ...顺便说一下,如果您想获得真正有用​​的答案,stackoverflow 上更具体的问题会更好,例如如果你坚持一些查询 => 发布查询
  • BW,感谢您的意见。我知道,SO 不喜欢讨论。希望不是这样。我确信随着项目的推进,我会遇到更具体的问题。敬请关注! :)

标签: database database-agnostic


【解决方案1】:

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

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

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

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

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

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

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

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

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

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

对于这种实现来说,最好的技术堆栈是什么?

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

【讨论】:

    猜你喜欢
    • 2016-05-27
    • 1970-01-01
    • 2011-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-06-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多