2

我正在进行一个具有学习目的的项目。由于这个项目因其主题而对我很有吸引力,我想建立良好的基础,并可能最终将其投入使用。

由于我的项目非常复杂,为了向您解释我的问题,我将使用一个虚构的项目,它是一个议程应用程序。

这个 Web 应用程序将有一个日历,用户可以在其中添加事件和提醒。假设有 10,000 个用户使用它,而这 10,000 个用户将添加数千个事件和提醒。

我的问题是您会推荐与数据库结构相关的两种方法中的哪一种?

  • 我是否应该为每个用户(在用户创建时)创建一个带有提醒和事件表的单独数据库,并将数据库与单独数据库中的用户相关联
  • 或者我应该为事件制作一张表,一张用于提醒,一张用于用户,并在单个数据库中将它们相互关联?

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

4

2 回答 2

5

这是我的看法:

  1. 不,您不应该每个用户创建单独的数据库。它无法扩展。意思是每次添加用户都要新建一个数据库?绝不。
  2. 一个数据库,多个用户——这就是关系数据库的诞生。

10,000 个用户并不是一个庞大的受众。每个创建数千个事件和提醒意味着 1000 万个事件,1000 万个提醒。这不被视为大型关系数据库。

您可能需要担心分区和清除旧记录。您将制定什么样的政策来保留这些事件和提醒?一年后用户将拥有什么访问权限?5年?十年?这些也是值得思考的好话题。

获取一本关于实体/关系建模的好书并仔细阅读。亚马逊上的任何现代产品都可以。

于 2012-06-21T09:51:45.437 回答
1

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

正如@duffymo 所说,一个数据库/多个用户就是关系数据库的用途。

于 2012-06-21T15:43:10.113 回答