Прострая моделька
Комментариев нет 5 июля 2008, 23:39 • Проектирование, Мысли по поводу...
В процессе разбора структуры сайта «Астрономия для школьников» мне пришла в голову одна простая мысль об организации структуры БД для простого сайта, которую уже наверняка несколько раз переизобретали.
Суть её заключается в следующем. Для хранения всей информации по страницам и папкам сайта нужно будет сделать несколько таблиц в БД, о двух из которых я сейчас и хочу рассказать (рассматривая самую простую модель).
Итак, первая таблица предназначена для хранения информации о папках на сайте. При этом конечно же хотелось бы иметь неограниченную вложенность оных. Для этого при создании необходимой таблицы я воспользуюсь кое-какими знаниями из области построения деревьев, так как они лучше всего будут применимы в данном случае.
Таблица nodes:
node_id int — ID узла-папки
node_name char — название папки (раздела по сути)
node_lname char — URL для папки (название латиницей)
node_level int — уровень вложенности папки
node_parent int — ID родительского узла-папки (0 в случае корневого раздела)
Теперь что касается страниц в папках. Для самого простого случая реализации будет достаточно всего 6 полей.
Таблица pages:
page_id int — ID страницы
node_id int — ID узла-папки, в которой находится страница
page_name char — название страницы
page_lname char — URL страницы (название латиницей)
page_txt text — тело страницы
page_create datetime — дата создания страницы
Конечно же, для обеспечения большего функционала нужно будет расширять как количество таблиц, так и количество полей в них (к примеру, для разграничения прав доступа, возможности ведения черновиков, поддержки версионности страниц, управлением кэшированим страниц и т.п.).
Взять PDF-версию этой статьи