Как хранить меню в базе данных? - PullRequest
0 голосов
/ 27 марта 2012

Я создаю сайт, на котором администратор должен иметь возможность создавать элементы меню из контента, например, страниц, форумов и т. Д .:

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 Ответ

1 голос
/ 27 марта 2012

Вы захотите создать отдельную таблицу для пунктов меню и ссылок.Например, ваши конечные запросы могут выглядеть следующим образом (частично с использованием инфраструктуры 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, но хранение их в отдельной таблице позволяет (на вид) бесконечное количество записей.Комментарии на сайтах могут работать так же.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...