model-view-controller - 我应该让我的 CouchDB 数据库服务器面向公众吗?

标签 model-view-controller architecture couchdb heuristics

我是 CouchDb 的新手并试图理解如何正确使用它。我来自 MongoDB我总是会写一个 web 层并将其放在 mongo 前面,这样我就可以允许用户访问其中的数据等。事实上,这就是我为每个网站使用所有数据库的方式。曾经写过。所以,看看 Couch,我发现它的原生 API 是 HTTP,并且它内置了诸如 OAuth 支持之类的东西,以及其他向我暗示也许我不应该再让我的代码层坐在 Couch 前面的功能,而是写Views和事情,只是把账户给我的用户?我正在考虑像我的网站的基于 HTTP 的 API,或者用户可以通过它使用我的数据的东西。不过,像这样打开沙发对我来说似乎很奇怪。在 Couch 的意义上,OAuth 是更多地用于远程访问我“正式”在我自己的网络内部编写和运行的软件,还是它的字面意思是为最终用户?

我知道有些事情可能只能通过 CouchDB 之上的代码层来完成,例如,如果您还希望在 API 请求期间发生其他与数据库无关的事情。所以沿着这些思路思考,我认为我仍然需要一个代码层,无论如何。

最佳答案

经销商的选择。

Nodejitsu 有一篇关于这类主题的精彩文章 here .

不知道您的应用程序细节我会采取广泛的方法......

后端

如果您想阻止用户看到您的数据库,请将其设置为后端。您可以通过诸如 node.js 之类的东西对所有内容进行管道传输,并仅显示用户需要查看的内容,而他们永远不会知道有关数据库的任何信息。
Resource View Presenter

前端

如果您不关心数据安全,您可以在 CouchDB 上托管整个应用程序;见 CouchApp .这种方法的好处是使用复制机制来控制发布您的站点/数据。这里的缺点是您几乎肯定会遇到一些技术限制,需要将 CouchDB 移到更靠近后端的位置。

混合

让应用服务器呈现接口(interface),客户端分别从数据库中提取数据。这提供了最大的灵 active ,但可能会造成伤害,因为即使设计良好,这也可能导致可支持性和可扩展性问题。

我的推荐

在后端使用 CouchDB。如果您需要移动客户端进行同步,请为此目的使用公开公开的辅助数据库,并有选择地将这些数据同步到需要去的任何地方。

关于model-view-controller - 我应该让我的 CouchDB 数据库服务器面向公众吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13811820/

相关文章:

python - python中基于geo查询cloudant数据库的建议

iphone - 使用 MVC 时是否需要创建单独的 View 类?

xml - 当 Spring MVC 项目在 Eclipse 上运行时,Tomcat 试图打开 xml 文件

javascript - 单击时更改 div 的图像背景

asp.net-mvc - MVC、ViewModels、BLL、自上而下的交互

python - 如何在 CouchDB (Python) 中查询否定结果

php - 拉拉维尔 3 : Looking for explanation how to use the model

validation - 允许系统适应人为错误的实践?

java - 实现基于配置将数据存储在不同数据库中的单一功能的最佳方法是什么?

mongodb - 有没有可以有效检测重复项的NoSQL数据库?