Основываясь на анализе требований, мы установили, что наше приложение
требует наличия четырех таблиц БД для хранения данных: 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.