2012-06-21 37 views
1

我正在从事一个具有学习目的的项目。由于这个项目因为它的主题对我很有吸引力,所以我想要建立良好的基础,并且可能会把它直播到最后。多用户Web应用程序的数据库结构

由于我的项目相当复杂,为了向您解释我的问题是什么,我将使用一个作为议程应用程序的小说项目。

这个Web应用程序将有一个日历,用户可以添加事件和提醒。它可以被10,000个用户和10,000个用户添加事件和提醒。

我的问题是你推荐哪两种方法与数据库结构有关?

  • 我应该在一个单独的数据库中创建为每个用户提醒和事件表(用户创造)一个单独的数据库和相关的数据库用户
  • 或者我应该做一个表事件,一个用于提醒和一个给用户,并将它们在一个数据库中相互关联?

到目前为止,我还没有做过任何多用户web应用程序,并且我对于许多用户不熟悉数据库结构方法。如有任何设计模式,你认为的,我将不胜感激分享:)

在此先感谢

斯托扬

回答

4

这是我的观点:

  1. 没有,你应该为每个用户创建一个单独的数据库。它不能缩放。这意味着每次添加用户时,都必须创建一个新的数据库?决不。
  2. 一个数据库,多个用户 - 这就是关系数据库的出生目的。

10,000个用户并不是那么大的受众。每个创建数千个事件和提醒将意味着10M事件,10M提醒​​。这不是一个大的关系数据库。

您可能需要担心分区和清除旧记录。你有什么样的政策来保存这些事件和提醒?一年后用户将拥有什么访问权限? 5年?十年?那些也是很好的主题。

获取有关实体/关系模型一本好书,并仔细阅读。亚马逊的任何现代产品都可以做到。

+0

感谢您的意见和建议。 –

1

我曾经与一个数据库一起工作,其中每个用户数据都保存在一个单独的数据库中(您的选项1),并相信我这是一个噩梦,并且公司花费大量资源来整合所有这些数据库一个单一的数据库,这不是一件容易的事。

由于@duffymo指出一个数据库/多个用户是关系数据库的用途。