2009-07-14 100 views
8

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

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

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

+0

[为我的网站上的每个用户分配MySQL数据库是否不合理?](http://stackoverflow.com/q/327787/90527)。 – outis 2014-11-15 22:04:09

回答

6

我几乎总是选择#1。如果你设计的是正确的,你可能只需要在你的入口点的几个关键表中需要你的'用户'列,然后其他所有东西都可以从这些关键表中连接起来。

5

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