Схема БД для сайта

Статус
Закрыто для дальнейших ответов.

TOI_I_IA

Новичок
Регистрация
27.06.2011
Сообщения
3
Помогите правильно составить схему базы данных для динамического сайта с подключаемыми модулями. Самому не получается составить схему двух таблиц.
Это таблица страниц и модулей. В данных момент у меня есть таблица tps_pages(страницы сайта) cо следующими полями:
id - номер записи(int)
url - url адрес(varchar)
title - Название страницы(varchar)
content - текст который выводится на странице(text)
upd - дата обновления контента(datatime)

выборку данных по определенной страницы из бд я делаю по url.

какое или какие поля мне нужно сюда добавить что бы в них указывать какие модули подключены именно на этой странице и как должна выглядеть таблица со списком модулей.
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
Помогите правильно составить схему базы данных для динамического сайта с подключаемыми модулями. Самому не получается составить схему двух таблиц.
Это таблица страниц и модулей. В данных момент у меня есть таблица tps_pages(страницы сайта) cо следующими полями:
id - номер записи(int)
url - url адрес(varchar)
title - Название страницы(varchar)
content - текст который выводится на странице(text)
upd - дата обновления контента(datatime)

выборку данных по определенной страницы из бд я делаю по url.

какое или какие поля мне нужно сюда добавить что бы в них указывать какие модули подключены именно на этой странице и как должна выглядеть таблица со списком модулей.
Сюда никаких, читаем про схему many to many, а вообще такие вещи лучше делать на уровне шаблона, и тогда сюда заносить template_id, а уже сам шаблон связывать с плагинами
 

TOI_I_IA

Новичок
Регистрация
27.06.2011
Сообщения
3
table page:
id - номер записи(int)
type_mod - номер поля для вкл-откл модулей (это будет ID из таблицы modu)
url - url адрес(varchar)
title - Название страницы(varchar)
content - текст который выводится на странице(text)
upd - дата обновления контента(datatime)
table modu:
id - номер типа подкл модулей (tinyint(2))
mod1 - on||of (tinyint(2))
mod2 - on||of (tinyint(2))
mod3 - on||of (tinyint(2))
mod4 - on||of (tinyint(2))
получится
Код PHP
1
2
id mod1 mod2 mod3 mod4
2 1 1 1 0
(тоесть вкл mod1 mod2 mod3)
и выборка будет
select * from page,modu where page.type_mod = modu.id;
в страницы
Код PHP
1
2
3
if ($res['mod1']==1){
подключаем
}
Мне посоветовали вот такой вариант. Что скажите?
 

medwoodu

Злобный модер
Регистрация
22.12.2005
Сообщения
1 418
table page:
id - номер записи(int)
type_mod - номер поля для вкл-откл модулей (это будет ID из таблицы modu)
url - url адрес(varchar)
title - Название страницы(varchar)
content - текст который выводится на странице(text)
upd - дата обновления контента(datatime)
table modu:
id - номер типа подкл модулей (tinyint(2))
mod1 - on||of (tinyint(2))
mod2 - on||of (tinyint(2))
mod3 - on||of (tinyint(2))
mod4 - on||of (tinyint(2))
получится
Код PHP
1
2
id mod1 mod2 mod3 mod4
2 1 1 1 0
(тоесть вкл mod1 mod2 mod3)
и выборка будет
select * from page,modu where page.type_mod = modu.id;
в страницы
Код PHP
1
2
3
if ($res['mod1']==1){
подключаем
}
Мне посоветовали вот такой вариант. Что скажите?
то что вам посоветовали -полная немасштабируемая хрень
_page_
id
...
template_id

_template_
id
name

_mod_
id
name
..params..

_mod_template_
mod_id
template_id

Код:
SELECT * FROM page LEFT JOIN mod_template ON mod_template.template_id=page.template_id LEFT JOIN mod ON mod_template.mod_id = mod.id
как то так
1) у нас есть возможность менять шаблоны страниц и создавать наборы модулей
2) у нас есть возможность добавлять -удалять модули
3) у нас есть возможность для страницы поменять сразу набор модулей
 

TOI_I_IA

Новичок
Регистрация
27.06.2011
Сообщения
3
Спасибо будем работать в этом направлении
 
Статус
Закрыто для дальнейших ответов.
Верх Низ