
Грунтуючись на аналізі вимог, ми вирішили використовувати для зберігання даних нашого додатку наступні таблиці:
tbl_user зберігає інформацію користувача, включаючи імʼя користувача та пароль;tbl_post зберігає інформацію про записи блогу:
title: необхідно, заголовок запису;content: необхідно, вміст запису у форматі Markdown;status: необхідно, статус запису. Може приймати значення:
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.
Ми розділили розробку нашого додатку на кілька основних етапів: