Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Комаров Дмитрий - Разработка сайта для строител...doc
Скачиваний:
7
Добавлен:
25.09.2019
Размер:
7.95 Mб
Скачать

2.2.8.Работа с базой данных.

При написании данного программного продукта будет использоваться паттерн проектирования Active Record, который даёт возможность обращаться к записи таблицы базы данных как к классу, получая доступ к её полям через поля класса. Пример работы с объектами, реализующими его:

$post = new Post();

$post->setTitle ('My first blog post!!');

$post->setAuthor(”admin”);

$post->save();

$firstPost = Post::find_by_id(1);

$firstPost->delete();

$adminPosts = Post::find_by_author(“admin”);

Чтобы сэкономить время на реализации паттерна ActiveRecord был использована готовая библиотека PHP ActiveRecord (http://www.phpactiverecord.org/)

Также будет использована библиотека PDO (PHP Data Objects), поставляемая с версии 5.1 в стандартный пакет поставки библиотек PHP. PDO позволяет унифицировать обращения к базам данных различного типа и использовать prepared statements с подставляемыми параметрами, что увеличивает безопасность запросов и повышает читабельность программного кода.

Пример использования prepared statements :

$DB = new PDO("mysql:host=$host;dbname=$dbname", $user, $pass);

$PS = $DB->prepare("INSERT INTO folks (name, addr, city) values (:name, :addr, :city)");

$PS ->bindParam(':name', $DB->quote($name));

$PS ->bindParam(':name', $DB->quote($addr));

$PS ->bindParam(':name', $DB->quote($city));

$PS ->execute();

Также в число замечательных возможностей PDO входят транзакции с авто-rollback’ом при ошибках и fetch-as-class (сериализация полей записи базы данных в поля класса и вызов его конструктора).

2.2.9.Визуальный редактор статей и новостей

Для удобного редактирования статей и новостей работниками фирмы планируется встроить в сайт готовый бесплатный WYSIWYG-редактор Redactor (http://imperavi.com/redactor/)

Созданные в этом редакторе статьи будут храниться в html-code в таблицах базы данных Pages и News для страниц и новостей соотвественно.

2.3.Карта web-сайта

Рис 2.1. Карта сайта

3.РАЗРАБОТКА КОМПОНЕНТОВ WEB-САЙТА

3.1.Разработка Базы Данных

В первую очередь сайт призван хранить, обрабатывать и показывать пользователям большие объемы разнородной информации. Поэтому разработку компонентов сайта логичнее всего начать именно с разработки базы данных.

3.1.1.Структура базы данных.

Структура получившейся базы данных (рис. 3.1) разработана в среде визуального проектирования баз данных MySQL Workshop.

Рис. 3.1 Структура базы данных

3.1.2.Описание таблиц базы данных

Легенда:

PK – PRIMARY KEY

FK (поле таблицы) – FOREIGN KEY

NN – NOT NULL

AI – AUTO INCREMENT

UQ – UNIQUE

умолч. – значение по умолчанию

мод. – модификаторы

3.1.2.1.Таблица users

Таблица users содержит имена пользователей, информацию о них и их права доступа. (см. структуру в табл. 3.1)

Таблица 3.1. Структура таблицы users

назв.-е поля

тип данных

умолч.

описание

мод.

login

VACHAR(50)

уникальный идентификатор

PK, AI

passhash

VARCHAR(32)

md5-хэш пароля

NN

email

TEXT

Адрес электронной почты

NN

email_check_code

VARCHAR(10)

NN

email_checked

BOOL

0

access_level

VARCHAR(20)

“user”

уровень доступа (роль пользователя на сайте)

name

TEXT

полное имя пользователя

address

TEXT

phone

VARCHAR(15)

телефон пользователя

mob_phone

VARCHAR(15)

мобильный телефон пользователя

html_info

TEXT

дополнительная информация о пользователе в формате html (обычно контакты)

mail_news

BOOL

0

NN

last_visit

DATETIME

banned

BOOL

флаг блокировки возможности захода на сайт для данного пользователя

banned_till

DATETIME

дата и время автоматической разблокировки

banned_reason

TEXT

причина блокировки аккаунта пользователя

Возможные значения перечисляемых типов:

  • access_level: “user”, “worker”, “admin”