如何实现多个用户cms?

时间:2012-05-28 10:47:06

标签: php symfony content-management-system

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

我想出了两个解决方案:

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

  3. 解决方案2,我正在考虑使用Apache的帮助实现。例如,对于user3,我会http://user3_website.mydomain.com/,这将是主网站www.mydomain.com的一个单独网站。除了/web/uploads/config之外,我将符号链接所有目录:

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

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

    我有使用Symfony 1.x的经验,但尚未对Symfony2进行过任何开发。

1 个答案:

答案 0 :(得分:1)

我会使用解决方案1,为所有具有owner_id字段的实例提供一个数据库。保持这种方式更容易。在某些时候,您可能不得不对数据库进行更改,并且必须在多个数据库上执行此操作可能会成为一场噩梦,除非您以某种方式自动执行此操作。

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