【问题标题】:Database Design for multiple users site多用户站点的数据库设计
【发布时间】:2010-04-03 22:54:41
【问题描述】:

我需要处理一个需要数据库来满足多个用户的 php 项目。一般来说,这个想法类似于他们对carbonmadebasecamp 甚至wordpress mu 的想法。它们迎合多个用户,这些用户也是其帐户的所有者。如果他们要取消/终止他们的帐户,页面/数据库上的任何内容都将被删除。

我不太确定我应该如何设计数据库?应该是:

  • 个人用户帐户的单独表格
  • 个人用户帐户的独立数据库
  • 还是其他?

请建议我解决此问题的最佳方法。非常感谢。

【问题讨论】:

    标签: database database-design


    【解决方案1】:

    我们在谈论多少用户?

    顺便说一句,我喜欢为每个用户帐户建立一个单独的数据库的想法。有很多优点:

    • 您可以保持架构(和您的应用程序代码)简单
    • 如果用户想要一份他们的数据库副本,您可以直接将其转储并提供给他们
    • 您可以通过将每个数据库的访问权限限制为给定的用户帐户来轻松确保安全
    • 您可以通过添加更多数据库服务器更轻松地进行横向扩展,因为您使用的是单独的数据库(不会有所有用户都使用公用表)

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

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

    【讨论】:

    • 我最初正在调查可能有 100 个用户,并且一直有新用户,例如免费用户。根据您的建议,是否意味着我只需要门户网站的默认数据库来存储有关帐户的基本信息,然后为单个帐户单独数据库?
    • 当然,这听起来很合理。
    • 如果我需要存储所有用户帐户的成员呢?因此,例如,如果我们谈论的是 wordpress mu 博客。假设我有一个访问者 A,他成为帐户用户 abc 的成员/作者,并且还希望注册 xyz。 A 需要在 abc 注册,然后在 xyz 重新注册,因为两个用户之间没有连接,因为他们使用不同的数据库?将成员放在默认门户数据库下,这样他们只需要 1 个 id 即可登录和访问,或者将他们留在单独帐户的数据库下,会有什么利弊?谢谢。
    猜你喜欢
    • 2011-03-18
    • 2017-01-04
    • 2012-07-19
    • 2013-04-30
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    相关资源
    最近更新 更多