Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Database 多用户web应用的数据库结构_Database_Design Patterns - Fatal编程技术网

Database 多用户web应用的数据库结构

Database 多用户web应用的数据库结构,database,design-patterns,Database,Design Patterns,我正在进行一个有学习目的的项目。因为这个项目的主题对我来说很有吸引力,所以我想打好基础,也许最终会付诸实施 由于我的项目非常复杂,为了向大家解释我的问题,我将使用一个虚构的项目,它是一个议程应用程序 这个web应用程序将有一个日历,用户可以在其中添加事件和提醒。它将被10000个用户使用,这10000个用户将添加数千个事件和提醒 我的问题是,您会推荐与数据库结构相关的两种方法中的哪一种 我是否应该为每个用户(在用户创建时)创建一个包含提醒和事件表的单独数据库,并将数据库与单独数据库中的用户关联

我正在进行一个有学习目的的项目。因为这个项目的主题对我来说很有吸引力,所以我想打好基础,也许最终会付诸实施

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

这个web应用程序将有一个日历,用户可以在其中添加事件和提醒。它将被10000个用户使用,这10000个用户将添加数千个事件和提醒

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

  • 我是否应该为每个用户(在用户创建时)创建一个包含提醒和事件表的单独数据库,并将数据库与单独数据库中的用户关联
  • 或者我应该为事件、提醒和用户创建一个表,并在单个数据库中将它们相互关联
到目前为止,我还没有做过任何多用户web应用程序,而且对于许多用户来说,我不熟悉数据库结构方法。如果您认为有任何设计模式,请与我分享:)

以下是我的意见:

  • 不,您不应该为每个用户创建单独的数据库。它无法扩展。这意味着每次添加用户时,都必须创建一个新的数据库?从来没有
  • 一个数据库,多个用户——这就是关系数据库诞生的原因
  • 10000个用户并不是那么多观众。每次创建数千个事件和提醒意味着1000万个事件和1000万个提醒。这不是一个大型关系数据库

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


    找一本关于实体/关系建模的好书,仔细阅读。亚马逊上任何现代化的东西都可以。

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

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