10

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

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

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

4

2 回答 2

8

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

于 2009-07-14T17:07:26.653 回答
7

作为一般经验法则,您几乎不希望拥有多个具有相同结构的表(或数据库)。如果您发现自己正在考虑创建单独的表stuff_for_user_astuff_for_user_b表(您的选项#2 和#3 听起来很像),那么您可能只想创建一个stuff包含一user列的表(即您的选项#1)。

于 2009-07-14T17:17:00.690 回答