我正在 Laravel 4 中开发一个具有多个用户的 Web 应用程序,每个用户都有一个配置文件。这些配置文件可能(或可能没有)具有不同的变量,例如日期等。我已经查看了一些解决这个问题的 RDBMS 解决方案,包括EAV
设计,但是这种方法在性能和代码方面确实很昂贵,所以我放弃了它.
另一种选择是创建一个包含许多列的大表,但我也放弃了它,因为拥有 30 个空字段的用户非常无用。
所以我在考虑使用 NoSQL,最终我选择了 CouchDB 来实现可扩展性和主-主复制。我研究了一些 DBaaS,发现 Cloudant 非常有趣。真正的问题是:这真的适合我的情况吗(让用户的个人资料具有每个用户的不同变量)?还是可以使用 RDBMS (MySQL)?另外,如何在 3 层应用程序中使用 CouchDB 和 Laravel?我不希望用户无法访问数据库的任何功能,我真的认为在服务器端使用 CouchDB 是迄今为止最好的选择,如果我错了,请纠正我。