针对多个用户站点的数据库设计

问题描述:

我需要在一个需要数据库迎合多个用户的php项目上工作。一般来说,这个想法与他们对carbonmadebasecamp或甚至wordpress mu的想法相似。他们迎合多个用户,他们也是他们账户的拥有者。如果他们要取消/终止他们的帐户,页面/数据库中的任何内容都将被删除。针对多个用户站点的数据库设计

我不太清楚应该如何设计数据库?它应该是:对于单个用户帐户

  • 单独的表
  • 单独为单个用户帐户
  • 或其他数据库?

请告知我要对这一问题的最佳途径。非常感谢你。

我们在讨论多少用户?

副手,我喜欢具有用于每个用户帐户单独的数据库的想法。有许多优点:

  • 可以保留模式(和你的应用程序代码)简单
  • 如果用户没有想过他们的数据库的副本,你可以只转储出来,并给他们
  • 您可以轻松地通过限制特定用户帐户
  • 您可以通过添加多个数据库服务器更轻松地扩展了访问每个数据库照顾安全的,因为使用的是不同的数据库(也就没有使用常见的表由所有用户)

当然,如果您需要将更新部署到数百个数据库,这对您来说可能会有点痛苦,但这就是自动化脚本的用处。

具有为每个用户单独的表的想法似乎是一个编码梦魇。每次引用共享表时,您都必须修改名称以匹配当前用户的副本。

+1

我最初正在考虑可能有100个用户,并且一直有新的用户,例如,免费用户。根据您的建议,这是否意味着我只需要一个门户网站的默认数据库来存储有关帐户的基本信息,然后为个人帐户分开数据库? – 2010-04-03 18:02:54

+0

当然,这听起来很合理。 – 2010-04-03 18:31:34

+0

如果我需要存储所有用户帐户的成员,那么如何?所以,如果我们谈论wordpress博客博客,例如。假设我有一位访问者A,他成为帐户用户abc的成员/作者,并且希望用xyz注册。 A需要用abc注册,然后用xyz重新注册,因为2个用户之间没有连接,因为他们使用不同的数据库?将会员放在默认门户数据库下的优点和缺点是什么?这样他们只需要一个ID就可以登录和访问,或者将它们留在单独账户的数据库之下?谢谢。 – 2010-04-03 21:52:07