@do-do-go

Какой вариант лучше?

Привет! Пишу приложение, где можно создавать типы контента: блог, новости, фотографии. Структура таблиц mysql следующая:
content - настройки и урлы типов контента
content_название_типа_контента - материалы к типам контента, их урлы и т.д.
Сделал так, что при открытии blog/ или news/ по таблице content ищется есть ли такое, и по этому урлу вывожу из таблиц content_blog и content_news материалы нужного контента.
Но вот проблема, мне нужно, чтобы можно было создавать не только тип контента, но и просто обычные страницы. /about /contact и т.п.

Решил сделать так:
1) Выбирать при создании типа контента, что это страница и не создавать таблицу content_название_типа_контента, а всего лишь создавать запись в таблице content и также в нее добавить поле text для содержимого страницы.
2) Сделать отдельную таблицы для страниц page и проверять, если вводимого урла нет в таблице content, то проверять в таблице page и выводить.
Посоветуйте, какой вариант выбрать?
  • Вопрос задан
  • 228 просмотров
Пригласить эксперта
Ответы на вопрос 2
DROP TABLE IF EXISTS `t_content`;

CREATE TABLE `t_content` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `type` enum('blog','news','page') DEFAULT NULL,
  `alias` varchar(255) DEFAULT NULL,
  `title` varchar(555) DEFAULT NULL,
  `content` text,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

LOCK TABLES `t_content` WRITE;
/*!40000 ALTER TABLE `t_content` DISABLE KEYS */;

INSERT INTO `t_content` (`id`, `type`, `alias`, `title`, `content`)
VALUES
	(1,'blog','eto_statia_bloga','Это статья блога','Контент'),
	(2,'news','eto_novost','Это новость','Текст новости'),
	(3,'page','kontacty','Контакты','Обычная страница, например с контактами');

/*!40000 ALTER TABLE `t_content` ENABLE KEYS */;
UNLOCK TABLES;
Ответ написан
@shagguboy
тормозить будет, если проверять на URL.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы