Основываясь на анализе требований, мы установили, что наше приложение
требует наличия четырех таблиц БД для хранения данных: User, Post,
Comment и Tag:
User хранит пользовательскую информацию, включая имя пользователя и пароль;Post хранит информацию о записях:
title: необходимо, заголовок поста;content: необходимо, содержимое поста, использующее
формат Markdown;status: необходимо, статус поста, может принимать значения:
draft: запись находится в черновом варианте и невидима для публики;published: запись опубликована;archived: запись с истекшим сроком действия, архивная, невидима
публике.tags: опционально, список разделенных запятой тэгов, относящих запись к
той или иной категории;Comment хранит информацию о комментариях. Каждый комментарий
ассоциируется с некоторой записью и содержит следующие поля:
name: необходимо, имя автора;email: необходимо, email автора;website: опционально, адрес веб-сайта автора;content: необходимо, текст комментария. Используется
формат Markdown;status: необходимо, статус комментария, показывающий, утвержден ли
комментарий (значение 1) или нет (значение 0);Tag хранит информацию о тегах записей. Каждая запись может иметь несколько
тэгов. Каждый тег может быть присвоен нескольким записям. Таблица Tag используется
портлетом «облако тегов», которому нужно посчитать частоту использования каждого тега.Следующая диаграмма сущность-отношение (ER) показывает структуру таблиц и
отношений между ними. Обратите внимание, что отношение между сущностями Post
и Tag — многие-ко-многим (реализуется как два отношения один-ко-многим через
промежуточную таблицу PostTag).
Диаграмма сущность-отношение БД системы управления блогом

SQL, соответствующий ER-диаграмме выше, вы можете найти в
демо-блоге. В установленной копии
фреймворка они находятся в файле /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql.
Мы разделили разработку нашего приложения на несколько основных этапов:
Signup or Login in order to comment.