2010-07-20 227 views
1

我正在设计我即将创建的CMS的过程。我正在考虑数据库,以及我想通过接近它的方式。CMS数据库设计 - 每个站点的主数据库或多个Db

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

这两种方法的优点和缺点是什么?我一直在考虑未来,所以我正在考虑在项目中实现内存缓存或APC缓存,为我的客户提供一个选项。

只是想学习最佳实践和什么其他开发商apporach将

+0

对于APC/memcached问题,请参阅:http://stackoverflow.com/questions/815041/memcached-vs-apc-which-one-should-i-choose – 2010-07-20 11:23:23

+0

您应该考虑以下内容 - (客户端)业务是好的,很多客户,也许他们想要外包追逐客户或其他需要访问你的数据的任务 - 如果你有一个数据库,会更简单。 即使它是一个完全自定义的解决方案,也可以进行模块化,并且如果您有一个db,将来会为您节省大量工作。 – 2010-07-20 12:08:47

回答

2

我已经运行了两者。我的企业选择将客户特定的数据分成单独的表格,以便在发生腐败时不会将所有数据都取下来。在一个理想的世界里,这可能永远不会发生,但是墨菲的定律......看起来很容易找到与他们分开的东西。您将100%确定地知道一个客户的内容将永远不会显示在另一个页面上。

如果您确实按照该路线行事,请准备好为您创建和配置数据库的脚本。建立一个完善的系统并满足需求是没有意义的,只是花时间手动设置数据库并整天安装。此外,设置数据库名称是一个额外的步骤,不是使用单个数据库表的一部分 - 这是一个令人头痛的问题,似乎一遍又一遍地重演。

1

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

2

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

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