我刚刚开始开发一个web应用程序(它将使用Google应用引擎进行部署),这个web应用程序将允许用户部署自己的一个小型网站,部分应用程序允许用户创建一个表单,允许用户注册用户网站,但是每个用户可能需要收集其客户的不同数据,例如,一个用户可能只需要一个客户的名字和电子邮件地址,因为另一个用户可能也需要客户的年龄。
我的问题是,构建数据库的最佳方式是什么(S)?
通过构造数据库(S),我的意思是如何实现它们,以便为每个用户存储不同的数据收集集,然后存储每个用户从客户那里检索到的信息?例如,我不认为这是正确的,但我最初的想法是,我必须为每个用户部署一个数据库,但这似乎有点过分,或者为每个用户添加一个新表(我甚至不知道这两个选项是否是选项)。我只对琐碎的数据库有过经验,这个问题使我感到困惑。
发布于 2012-04-24 23:10:27
我建议你调查一下卡桑德拉或MongoDB。它们都是,通常被称为NoSQL数据库。
与传统的关系数据库相比,NoSQL数据库的一些优点是:
发布于 2012-04-26 21:25:51
应用程序的那个部分不是非常“关系”的。您需要实现一个键值模式,如:
users
user_id pk
attributes
attribute_id pk
user_attributes
user_id references users(user_id)
attribute_id references attributes(attribute_id)或者类似于PostgresSQL的hstore。这将允许您将所有数据保存在一个关系数据库中,如果它适合您的应用程序的其他部分;您将不得不判断“关系”如何是您的整个应用程序。
发布于 2012-04-25 01:49:29
这里有两条路可走。
使用NoSql类型数据库,并在代码中包含一些非常复杂的逻辑,从而将所有内容组合在一起。
或
生成一个关系数据库模式,再加上为每个网站处理它的所有类/代码。您有一个相当复杂的代码生成器,但对于实际网站来说,代码简单、直观且易于调试。
https://softwareengineering.stackexchange.com/questions/145872
复制相似问题