首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Web应用.数据库设计/基础结构

Web应用.数据库设计/基础结构
EN

Software Engineering用户
提问于 2012-04-24 22:02:34
回答 3查看 2.3K关注 0票数 1

我刚刚开始开发一个web应用程序(它将使用Google应用引擎进行部署),这个web应用程序将允许用户部署自己的一个小型网站,部分应用程序允许用户创建一个表单,允许用户注册用户网站,但是每个用户可能需要收集其客户的不同数据,例如,一个用户可能只需要一个客户的名字和电子邮件地址,因为另一个用户可能也需要客户的年龄。

我的问题是,构建数据库的最佳方式是什么(S)?

通过构造数据库(S),我的意思是如何实现它们,以便为每个用户存储不同的数据收集集,然后存储每个用户从客户那里检索到的信息?例如,我不认为这是正确的,但我最初的想法是,我必须为每个用户部署一个数据库,但这似乎有点过分,或者为每个用户添加一个新表(我甚至不知道这两个选项是否是选项)。我只对琐碎的数据库有过经验,这个问题使我感到困惑。

EN

回答 3

Software Engineering用户

回答已采纳

发布于 2012-04-24 23:10:27

我建议你调查一下卡桑德拉MongoDB。它们都是,通常被称为NoSQL数据库。

与传统的关系数据库相比,NoSQL数据库的一些优点是:

  • 有助于缩放
  • 柔性数据模型
  • 分布式容错
票数 0
EN

Software Engineering用户

发布于 2012-04-26 21:25:51

应用程序的那个部分不是非常“关系”的。您需要实现一个键值模式,如:

代码语言:javascript
复制
users
  user_id         pk

attributes
  attribute_id    pk

user_attributes
  user_id         references users(user_id)
  attribute_id    references attributes(attribute_id)

或者类似于PostgresSQL的hstore。这将允许您将所有数据保存在一个关系数据库中,如果它适合您的应用程序的其他部分;您将不得不判断“关系”如何是您的整个应用程序。

票数 1
EN

Software Engineering用户

发布于 2012-04-25 01:49:29

这里有两条路可走。

使用NoSql类型数据库,并在代码中包含一些非常复杂的逻辑,从而将所有内容组合在一起。

生成一个关系数据库模式,再加上为每个网站处理它的所有类/代码。您有一个相当复杂的代码生成器,但对于实际网站来说,代码简单、直观且易于调试。

票数 0
EN
页面原文内容由Software Engineering提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://softwareengineering.stackexchange.com/questions/145872

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档