CMS数据库设计 - 每个站点的主数据库或Multi-Db

时间:2010-07-20 03:27:48

标签: database database-design memcached

我正在设计我即将创建的CMS。我正在考虑数据库以及我希望如何接近它。

您认为最好为我的所有客户网站创建1个主数据库吗?或者我每个站点应该有1个数据库吗?

这两种方法的好处和不利之处是什么?我一直在考虑未来,所以我在考虑为项目实现memcache或APC缓存,为我的客户提供一个选项。

只是尝试学习最佳实践以及其他开发人员的用途

3 个答案:

答案 0 :(得分:2)

我跑了两个。我的业务选择将特定于客户端的数据分成不同的表,这样如果一个人发生腐败,那么并非所有数据都被删除。在一个理想的世界里,这种情况可能永远不会发生,但墨菲定律......看起来很容易找到与它们分开的东西。您将100%确定地知道一个客户的内容永远不会显示在另一个客户的页面上。

如果确实沿着这条路走下去,请准备好为您创建构建和配置数据库的脚本。建立一个优秀的系统并满足它的需求并没有什么乐趣,只花费你的时间手动设置数据库并整天安装。此外,设置数据库名称是一个额外的步骤,不是使用单个数据库表的一部分 - 这是一个令人头疼的问题,似乎会​​一遍又一遍地重复。

答案 1 :(得分:2)

开发单主数据库。这将需要少量的额外工作,并为数据库设计增加一点点复杂性,但会给你一些不错的功能。最大的是能够在站点之间共享数据。

设计主数据库意味着您可以选择在有意义的情况下组合网站,但也允许您为每个站点安装主数据库。两全其美。

答案 2 :(得分:1)

这在很大程度上取决于每个客户端需要的自定义量。如果您预见到客户要求提供特定于其部署的许多一次性功能,则基于单个核心结构的单独数据库可能是有意义的。我强烈建议尝试使所有客户端都可以使用任何自定义,并将所有结构定义在一个地方/数据库中,而不是在多个数据库中复制它。通过使用一个数据库,您可以直接更新结构,并且所有站点的实现都是一致的,因此它们都可以使用相同的CMS代码。