Разработка программного средства для коммуникации участников образовательного процесса на основе тематических блогов

Дипломная работа - Компьютеры, программирование

Другие дипломы по предмету Компьютеры, программирование



Рисунок 8 - ER-диаграмма

Отношение Resource - содержит записи о блогах, постах и комментариях.

Атрибуты:

id_resource -идентификатор в таблице;

parent_fk - указатель на родителя(т.е. указывает для какого блога был создан пост);

resource_name - имя ресурса (название блога , тема сообщения);

resource_type - тип ресурса;

resource_description - текст сообщения , комментария ;

time_last_modify - время последней модификации;

owner_fk - ссылка на пользователя (автора).

Отношение tresource - содержит описание ресурса .

Атрибуты:

Id - идентификатор записи;

Name - имя ресурса (Блог, пост, комментарий).

Отношение user_account - содержит данные для аутентификации пользователя в системе.

Атрибуты:

Id_account - идентификатор записи в таблице;

Login_name - имя пользователя для входа в систему;

Pass_hash - хэш пароля ;

Person_fk - ссылка на данные о пользователе.

Отношение person - содержит персональные данные о пользователях.

Атрибуты:

Id - идентификатор записи о пользователе в таблице;

Surname - фамилия пользователя;

Name - имя пользователя;

Patronymic - отчество пользователя;

Birthday - дата рождения.

Отношение marks - содержит оценки пользователей для того или иного ресурса. Связка полей resource_fk и user_account_fk уникально идентифицируют запись в таблице.

Атрибуты:

Resource_fk - указатель на оцениваемый ресурс;

User_account_fk - ссылка на пользователя оставившего оценку.

.3 Описание структуры программных модулей

Так как выбранный фреймворк CodeIgniter работает по принципу MVC, программные модули состоят из контроллеров, моделей и видов. В данной работе модели работают с базой данных, виды отвечают за представление нужных данных, а контроллеры являются управляющими модулями для взаимодействия данных и их визуального представления [7] , пример представлен на рисунке 9.

Рисунок 9 - Основные программные модули

В разрабатываемом программном средстве все контроллеры и модели разделены с учетом обрабатываемого ими ресурса.

Blog - данный контроллер предназначен для организации работы с блогом, позволяя создавать, оценивать, просматривать записи о блогах. В нем реализованы следующие методы:

index() - функция переадресовывающая пользователя на домашнюю страницу;

add_blog() - добавление блога;

get_all_blog_titles() - получения списка всех блогов;

get_blog_by_owner($owner_fk) - получение списка блогов всех пользователя. Идентификатор пользователя передается в виде параметра owner_fk;

blog_mark_minus($resource_fk,$user_account_fk) - понижение оценки блога. Параметры resource_fk - указатель на ресурс и user_account_fk - указатель на пользователя;

blog_mark_plus ($resource_fk,$user_account_fk) - повышение оценки блога. Параметры resource_fk - указатель на ресурс и user_account_fk - указатель на пользователя;

get_blog_mark($resource_fk) - получение оценки блога. Идентификатор ресурса передается в виде параметра resource_fk.

Post - данный контроллер предназначен для работы с записями в блогах , добавления, оценивания. В данном контроллере рализованны следующие методы:

index() - функция переадресовывающая пользователя на домашнюю страницу;

add_post() - добавить новый пост к блогу;

get_post($id_resource) - получение содержания поста . Идентификатор записи передается в виде параметра id_resource$

get_post_mark($resource_fk) - получение оценки записи. Идентификатор записи передается в виде параметра resource_fk;

post_mark_plus($resource_fk,$user_account_fk) - повышение рейтинга записи. Параметры resource_fk - указатель на ресурс и user_account_fk - указатель на пользователя;

post_mark_minus ($resource_fk,$user_account_fk) - понижение рейтинга записи. Параметры resource_fk - указатель на ресурс и user_account_fk - указатель на пользователя.

Тексты основных программных модулей приведены в приложении Д.

.4 Реализация методов программного средства

.4.1 Получение всех записей в блоге

Алгоритм получения всех записей в блоге основывается на выборке всех потомков ресурса для которого вызывается данный метод. В качестве параметров функция получает идентификатор ресурса родителя (блога) и возвращает массив записей у которых полученный идентификатор отмечен как породивший его. Полученный массив результатов передается в контроллер который формирует страницу результатов. Код данного метода имеет следующий вид:

public function get_in_blog_titles($id_resource)

{

$sql = "select id_resource,resource_name,resource_type, pers.surname,.name,pers.patronymic,time_last_modify,sum(value) as ratio,owner_fkaccess_management.resource resjoin access_management.user_account acc on res.owner_fk=acc.id_accountjoin general.person pers on acc.person_fk=pers.idjoin access_management.marks m on res.id_resource=m.resource_fkres.parent_fk = ?by id_resource,resource_name,resource_type, pers.surname,.name,pers.patronymic,time_last_modify,owner_fk

";

$query = $this->db->query($sql,array($id_resource));

$query = $query->result_array();$query;

}

.4.2 Удаление блога

Алгоритм удаления блога основывается на удалении всех его потомков. Это достигается путем вызова функции удаления для всех его прямых потомков. Данное действие необходимо так как удаление сводится не только к удалению прямых потомков, но и к удалению потомков ресурсов порожденных блогом. Код данного метода имеет следующий вид:

public function delBLog($id_resource){

$sql = "delete from access_management.resourceid_resource = ?";

$this->db->query($sql,array($id_resource));

}function get_blog_child($id_resource){

$sql = " select id_resource from access_management.resourceparent_fk = ?";

$res = $this->db->query($sql,array($id_resource)); $res->result_array();

}

}

.4.3 Получение содержимого записи

Алгоритм получения содержимого записи состоит из двух частей: получение описания самой записи и получения комментариев к