如何在数据库中存储菜单?

时间:2012-03-26 21:27:05

标签: php mysql database-schema

我正在建立一个网站,管理员应该可以从内容创建菜单项,例如网页,论坛等:

CREATE TABLE pages (
  id           INTEGER      PRIMARY KEY AUTOINCREMENT,
  slug         TEXT,
  title        TEXT,
  content      TEXT,
  parent       INTEGER, 
  created      TEXT         DEFAULT '0000-00-00 00:00:00',
  updated      TEXT         DEFAULT '0000-00-00 00:00:00',   
  UNIQUE(slug)
);

以及自定义链接......

我应该如何在数据库中存储这些菜单?

1 个答案:

答案 0 :(得分:1)

您需要为菜单项和链接创建单独的表。例如,您的最终查询可能如下所示(部分使用CI框架):

<ul>
<?php
$sql = "SELECT * FROM `Links` WHERE `dbLinkUser` = 1";
$sqlResult = $this->db->query($sql);

foreach($sqlResult->result() as $link)
{
echo "<li><a href='" . $link->dbLinkURL . "'>" . $link->dbLinkDesc . "</a></li>";
}
?>
</ul>

这将允许您根据添加它们的用户填充链接列表(或菜单项)。当然,您可以将它们约束在WHERE子句中的任何内容上,但将它们保存在单独的表中允许(看似)无限数量的条目。对网站的评论可以以相同的方式工作。