垂直或水平“设置”表?

时间:2012-02-28 06:45:43

标签: php mysql

创建CMS,我有一个“设置”表,我在其中存储了许多CMS设置。如网站名称,网址等。

我已经看到每个是一个设置(垂直)

我也看到了每个是一个设置(水平)

您认为 CORRECT 方法是什么?

垂直:

+----------------------+
+id |   name   | value +
+----------------------+
+0  |   site   | (url) +
+1  | comments |   0   +
+----------------------+

水平:

+---------------------------------------------+
+id  |  site   |  comments  |  title  |  etc  +
+---------------------------------------------+
+0   |  (url)  |     0      |YourSite |  etc  +
+---------------------------------------------+

3 个答案:

答案 0 :(得分:0)

我会将所有设置存储在一行中。如果您将来需要(例如,本地化),这为其他“网站”留出了空间。我还要确保cached these settings

答案 1 :(得分:0)

我个人会使用垂直方式来执行此操作,因为它不会限制您使用当前具有列的设置。您可以稍后添加所需的数量。使用水平方法,您必须为每个设置添加新列。

Knossos关于缓存的说法是正确的,请确保尽可能缓存设置。 这些表格在每个综合浏览量和成本数据库性能上都会被读取,而不应该这样。 Memcached是一个非常好的建议,但如果你只有一个网络服务器,你也可以使用APC。

答案 2 :(得分:0)

我的自我,如果你在一个网站上使用这个只使用你所显示的垂直,如果你认为以后相同的CMS可能用于多个网站使用垂直但添加一个site_id列,即使现在它的默认值为1,所有设置再次使用它,但请确保您启用了一些缓存系统