【问题标题】:Custom CMS with multiple users. Best practices具有多个用户的自定义 CMS。最佳实践
【发布时间】:2011-03-28 22:43:17
【问题描述】:

我目前正在为特定领域开发 Web 应用程序。关键是用户可以创建帐户、管理特定数据并通过 API 调用在其网站上使用该数据。所以它实际上是某种 WordPress CMS,但没有前端功能。它也不是开源的。

简而言之,用户可以通过 API 管理他们的数据并在另一个远程网站上使用它。

我的问题:

我应该为每个新帐户创建一个空数据库,还是应该将每个记录与该帐户的唯一 ID 关联?

这两种方式中哪一种是最常用的,哪一种最安全,哪一种需要最少的维护?

【问题讨论】:

    标签: mysql database-design web-applications


    【解决方案1】:

    通常开始复制数据库是个坏主意。随着您的系统发生变化,您必须将补丁应用到所有不同的数据库,以便它们与代码更改一起工作。这可能很棘手。一个更简单的解决方案是将所有内容保存在一个数据库中。任何特定于用户的数据都应该有一个标识符(例如UserID),以便您知道它属于哪个用户。

    我认为创建一个新的数据库实例有意义的唯一情况是数据库实例将在物理上独立的机器上为不同的客户端运行。

    【讨论】:

    • 就像我想的那样。这可能是一个安全问题吗?例如:有一千个帐户和一个黑客。当黑客设法更改数据库时-> 一千个网站将被破坏。当我使用其他方法(多个数据库)时,我没有这个问题。
    • @Bundy:是的,但如果这是一个技术漏洞(相对于社交漏洞,例如诱骗某人放弃密码),他们都会以同样的方式受到攻击,特别是如果他们在同一台物理机。它可能会稍微保护其他帐户,但很难说有多少。 n 个重复系统值得额外维护吗?
    【解决方案2】:

    我认为这取决于网站会做什么。

    如果它服务于单独的业务,例如sourceforge提供的,针对一组用户的业务,那么将你的用户表甚至dbs分开,或者有一些采购过程是必要的

    如果您将网站定位到单个用户,则使用用户记录会更容易

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-20
      • 1970-01-01
      • 2014-03-20
      • 2023-03-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多