【问题标题】:how to implement multiple user cms?如何实现多用户cms?
【发布时间】:2012-09-21 03:40:39
【问题描述】:

我想实现一个多用户 CMS 网站,每个用户都可以对自己的记录执行 CRUD 操作。这意味着应该在记录级别而不是模型级别实现安全性。

我想出了两个解决方案:

  1. 在每个模型中都有一个owner_id 字段。
  2. 每个用户都有一个用于他们修改的模型的数据库。为所有相关记录(例如用户数据(姓名、电子邮件、用户名、密码)、由管理员编辑的模型,但不是用户等)保留一个主数据库。

解决方案 2,我正在考虑在 Apache 的帮助下实施。例如,我将为 user3 设置 http://user3_website.mydomain.com/,这将是与 www.mydomain.com 的主网站分开的网站。除了 /web/uploads/config 之外,我会符号链接所有目录:

  • /config - 我需要 user3 的数据库配置
  • /web/uploads - 我将用于他们的上传。

是否有使用 Symfony 实现这一点的最佳实践/设计模式?我从未开发过可以根据用户动态选择数据库的网站(解决方案 2),所以我想知道这是否有意义。

我有使用 Symfony 1.x 的经验,但还没有在 Symfony2 上进行任何开发。

【问题讨论】:

    标签: php symfony content-management-system


    【解决方案1】:

    我会选择解决方案 1,为所有实例创建一个数据库,并带有 owner_id 字段。这样更容易维护。在某些时候,您可能必须对数据库进行更改,并且必须在多个数据库上进行更改可能会成为一场噩梦,除非您以某种方式将其自动化。

    除非您需要考虑一些严重的安全问题,否则在单独的数据库中执行此操作几乎没有任何优势。

    【讨论】:

    • 如果我使用大量为单个用户设计的第三方软件/插件怎么办?在这种情况下,我必须扩展所有这些并添加 owner_id 并确保我不会破坏它们。这就是我考虑解决方案 2 的原因。您怎么看?
    • 对不起,直到现在我才注意到你的评论。在这种情况下,您可能别无选择,只能选择解决方案 2,扩展或更改第 3 方软件和插件可能很快就会成为一个巨大的维护问题。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-25
    • 1970-01-01
    • 2011-08-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多