Database design 多用户Web应用数据库设计

Database design 多用户Web应用数据库设计,database-design,saas,Database Design,Saas,我正在开发一个web应用程序,完成后将成为一个托管的多用户解决方案。我正试图找出处理我的应用程序数据库设计的最佳方法。具体来说,我需要弄清楚如何处理多个单独的帐户 在我看来,有几种选择: 1) 有一组数据库表。在每个表中,包括一个“用户”列或类似的内容,将每一行映射到适当的用户帐户。 2) 为每个用户创建一个完全独立的数据库。出于性能原因,这似乎不是一个非常好的主意。 3) 在单个数据库中为每个用户创建单独的模式。每个模式将包含每个用户的表 你将如何处理这个问题?有没有我错过的选择?我使用Pos

我正在开发一个web应用程序,完成后将成为一个托管的多用户解决方案。我正试图找出处理我的应用程序数据库设计的最佳方法。具体来说,我需要弄清楚如何处理多个单独的帐户

在我看来,有几种选择: 1) 有一组数据库表。在每个表中,包括一个“用户”列或类似的内容,将每一行映射到适当的用户帐户。 2) 为每个用户创建一个完全独立的数据库。出于性能原因,这似乎不是一个非常好的主意。 3) 在单个数据库中为每个用户创建单独的模式。每个模式将包含每个用户的表


你将如何处理这个问题?有没有我错过的选择?我使用PostgreSQL作为我的数据库,如果这对处理这个问题有任何影响的话。

我几乎总是选择选项1。如果设计正确,您可能只需要在作为入口点的几个关键表中使用“user”列,然后其他所有内容都可以从这些关键表中连接起来

一般来说,您几乎不希望有多个具有相同结构的表(或数据库)。如果您发现自己正在考虑为用户a创建单独的
stuff_
和为用户b创建
stuff_
表(这是您的选项2和3听起来很像的),那么您可能只想创建一个
stuff
表,其中包含一个
user
列(即您的选项1)。

可能的重复项。