Загальна структура
Грунтуючись на аналізі вимог, ми вирішили використовувати для зберігання даних нашого додатку наступні таблиці:
tbl_user
зберігає інформацію користувача, включаючи імʼя користувача та пароль;tbl_post
зберігає інформацію про записи блогу:title
: необхідно, заголовок запису;content
: необхідно, вміст запису у форматі Markdown;status
: необхідно, статус запису. Може приймати значення:- 1: запис знаходиться у чорновому варіанті та прихований від читачів;
- 2: запис опубліковано;
- 3: запис із закінченим терміном дії: не публікується в загальному списку, але все ще доступний окремо.
tags
: опціонально. Список розділених комою тегів, які відносять запис до тієї чи іншої категорії;
tbl_comment
зберігає інформацію про коментарі. Кожен коментар асоціюється із деяким записом і містить наступні поля:author
: необхідно, імʼя автора;email
: необхідно, email автора;url
: опціонально, адреса веб-сайту автора;content
: необхідно, текст коментаря у текстовому форматі;status
: необхідно, статус коментаря, який показує, затверджений коментар (значення 2) чи ні (значення 1);
tbl_tag
зберігає інформацію про теги записів та їх кількості. Використовується для побудови хмари тегів. Таблиця містить наступні поля:name
: необхідно, унікальне імʼя тега;frequency
: необхідно, кількість використань тега у записах.
tbl_lookup
зберігає інформацію про текстові синоніми цілочисельних даних (кодів). Коди використовуються при розробці, синоніми безпосередньо відображаються користувачам. Наприклад, ми використовуємо ціле число 1 для позначення чорнового статусу запису і рядокЧернетка
, яку ми відображаємо користувачам. Таблиця містить наступні поля:name
: текстове представлення даних, що відображається користувачеві;code
: цілочисельне представлення даних;type
: тип даних;position
: порядковий номер для даних одного типу.
Наступна діаграма сутність-звʼязок (ER) показує структуру таблиць і звʼязків між ними.
Діаграма сутність-звʼязок БД системи управління блогом

Інформація: Ми називаємо всі таблиці та їх поля у нижньому регістрі, так як різні СУБД сприймають регістр по-різному.
Також ми використовуємо префікс
tbl_
. Зроблено це із двох причин. По-перше, префікс дозволяє зберігати дані декількох додатків в одній БД, що часто доводиться робити в умовах віртуального хостингу. По-друге, використання префіксів зменшує ймовірність збігу імен таблиць із зарезервованими ключовими словами СУБД.
SQL, відповідний ER-діаграмі вище, ви можете знайти у демо-блозі.
У встановленій копії фреймворку вони знаходяться у файлі /wwwroot/yii/demos/blog/protected/data/schema.sqlite.sql
.
Ми розділили розробку нашого додатку на кілька основних етапів:
- Етап 1: створення прототипу системи керування блогом. Він повинен містити більшу частину необхідної функціональності;
- Етап 2: управління записами: створення, видалення, відображення записів списком, відображення окремого запису;
- Етап 3: управління коментарями: створення, оновлення, видалення, відображення списком і ствердження коментарів до записів;
- Етап 4: реалізація портлетів: меню користувача, форми входу, хмари тегів і недавніх коментарів;
- Етап 5: фінальна оптимізація і розгортання.