2012-08-14 23 views
1

如何创建一个Web应用程序(使用Java,C#或JavaScript),它将使用NoSQL数据库作为后端,但可以灵活地改变后端(例如从couchDB到mongoDB),而无需重写很多代码。NoSQL独立应用程序体系结构

我认为最好使用一些框架,比如Spring for Java和Wakanda for JavaScript。如果这是要走的路,那么请列举一些框架。

我知道不同类型的NoSQL数据库之间有很大的差异,我也知道它取决于需要解决的问题。但这是一个理论上的问题,因此我希望获得许多不同的选项,可以用来解决不同的问题,同时让NoSQL具有“独立”的应用程序(某些方面,例如只在基于图形的后端)。

谢谢你的回答和时间。

+0

*“请列出一些框架”* - 这不是适合的地点。有关列表或意见,投票问题等问题不在Stack Overflow的主题上。至于你的其余问题,你不一定要使用框架。抽象NoSQL数据库就像抽象任何数据持久层一样。一般来说,你将表示逻辑,业务逻辑和持久性逻辑分开。在这种情况下,你的持久化逻辑会使用类似Mongo的东西,但你可以改变它来使用Couch而不用改变任何其他的逻辑。 – David 2012-08-14 18:59:09

+0

是的,我知道。但如果你有很多查询,即使你有单独的逻辑,你仍然需要重写很多代码。如果你使用SQL,那么从MySQL迁移到PostgreSQL不会是一个大问题,但是从一个NoSQL数据库迁移到另一个意味着重写大量代码。我只想知道人们有什么选择来缓解可能的迁移。 – Ben 2012-08-14 19:03:23

回答

0

如果你真的想独立于数据库,你必须抽象掉所有实体和数据库访问。最常见的方法是实现存储库模式。

请注意,OR/Ms(和NoSQL客户端)通常要求您违反封装(公共设置者或使用List<T>而不是IEnumerable<T>作为收集属性)。

如果这是一个牺牲,你愿意采取,你也可以使用你的域实体作为数据库实体。 (在一个小项目中,我没有问题,但不是中/大)