1

我正在 Laravel 4 中开发一个具有多个用户的 Web 应用程序,每个用户都有一个配置文件。这些配置文件可能(或可能没有)具有不同的变量,例如日期等。我已经查看了一些解决这个问题的 RDBMS 解决方案,包括EAV设计,但是这种方法在性能和代码方面确实很昂贵,所以我放弃了它.

另一种选择是创建一个包含许多列的大表,但我也放弃了它,因为拥有 30 个空字段的用户非常无用。

所以我在考虑使用 NoSQL,最终我选择了 CouchDB 来实现可扩展性和主-主复制。我研究了一些 DBaaS,发现 Cloudant 非常有趣。真正的问题是:这真的适合我的情况吗(让用户的个人资料具有每个用户的不同变量)?还是可以使用 RDBMS (MySQL)?另外,如何在 3 层应用程序中使用 CouchDB 和 Laravel?我不希望用户无法访问数据库的任何功能,我真的认为在服务器端使用 CouchDB 是迄今为止最好的选择,如果我错了,请纠正我。

4

1 回答 1

2

拥有像您这样的非同质数据是 CouchDB 或 MongoDB 等面向文档的数据库优于关系数据库的典型情况。

虽然 CouchDB 可以配置为面向公众并可供客户端直接访问(甚至有整个 Web 应用程序仅由 CouchDB 提供服务的概念验证),但这在实践中并不常见。通常的场景是将 CouchDB 用作隐藏的后端服务,由运行某种服务器端 Web 技术(如 PHP、JSP、ASP 或您喜欢的任何东西)的 Web 服务器使用。

于 2013-05-23T13:17:20.060 回答