База данных отдела маркетинга и сбыта ОАО "Бобруйсксельмаш"
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
ion.php - файл описывающий базу данных для внутренних функций;
?файл index.php - файл для запуска системы;
?файл tcore.php - файл, который содержит родительский класс для всех подключаемых модулей в системе.
База данных содержит следующие таблицы:
?account - таблица содержащая личные данные пользователя. Таблица имеет следующие поля:
1)acc_id - идентификатор пользователя имеет атрибут AUTOINCREMENT, UNIQUE. Тип поля: int(11);
2)name - имя пользователя. Тип поля: varchar(255);
3)login - логин пользователя. Тип поля: varchar(100);
4)password - пароль пользователя. Тип поля: varchar(100);
5)email - электронный ящик. Тип поля: varchar(255);
?products - таблица содержащая информацию о продуктах. Таблица имеет следующие поля:
1)prod_id - идентификатор пользователя имеет атрибут AUTOINCREMENT, UNIQUE. Тип поля: int(11);
2)title - название продукта. Тип поля: varchar(255);
)description - описание продукции. Тип поля: text;
4)acc_id - идентификатор пользователя. Тип поля: int(11);
?preds - таблица содержащая информацию о предприятиях. Таблица имеет следующие поля:
1)pred_id - идентификатор предприятия имеет атрибут AUTOINCREMENT, UNIQUE. Тип поля: int(11);
2)title - название предприятия. Тип поля: varchar(255);
3)address - адрес предприятия. Тип поля: text;
4)okpo - УНН предприятия. Тип поля: int(11);
5)bank_info - банковские реквизиты предприятия. Тип поля: text;
6)phone - телефонный номер предприятия. Тип поля: varchar(60);
7)fax - факс предприятия. Тип поля: varchar(60);
8)url - веб - сайт предприятия. Тип поля: varchar(255);
9)email - электронный ящик предприятия. Тип поля: varchar(255);
10)acc_id - идентификатор пользователя. Тип поля: int(11);
?status - таблица содержащая справочные данные для договоров. Таблица имеет следующие поля:
1)status_id - идентификатор статуса договора имеет атрибут AUTOINCREMENT, UNIQUE. Тип поля: int(11);
2)title - название статуса. Тип поля: varchar(30);
?archive - таблица содержащая информацию о договорах. Таблица имеет следующие поля:
1)doc_id - идентификатор договора имеет атрибут AUTOINCREMENT, UNIQUE. Тип поля: int(11);
2)docid - номер договора. Тип поля: varchar(255);
3)status_id - статус договора. Тип поля: int(11);
4)sum - сумма заключенного договора. Тип поля: double;
5)date - дата регистрации договора. Тип поля: date;
6)pred_id - идентификатор предприятия. Тип поля: int(11);
7)payment_date - дата оплаты договора. Тип поля: date;
8)finish_date - срок исполнения договора. Тип поля: date;
9)comments - примечание к договору. Тип поля: text;
10)acc_id - идентификатор пользователя. Тип поля: int(11);
?archive_product - хранит информацию о количестве поставляемой продукции. Таблица имеет следующие поля:
1)doc_id - идентификатор договора. Тип поля: int(11);
2)prod_id - идентификатор продукта. Тип поля: int(11);
3)amount - количество продуктов. Тип поля: int(11).
Для разработки данного дипломного проекта была использована система управления содержимым сайта с открытым исходным кодом. В данной системе можно выделить следующие блоки:
?блок работы с базой данных;
?блок отображения информации и получение данных с форм.
Данные блоки содержат классы и методы необходимые для работы системы.
Класс xdb - это класс для работы с базой данных, который включает такие основные методы как:
?sqlget - получает данные из базы и возвращает их в виде массива;
?sqlset - позволяет сохранять данные из массива в базу данных;
?sqlque - выполняет sql - запрос и возвращает результат его выполнения.
Класс smarty используется для работы с шаблонами, что позволяет разделить работу программиста и дизайнера. Основными методами класса Smarty являются:
?assign - подготавливает массив рабочих данных для вставки в готовый шаблон;
?display - компилирует заранее подготовленный шаблон с рабочими данными и выводит его на экран.
При разработке дипломного проекта мной были созданы следующие модули:
?member - модуль, отвечающий за авторизацию пользователей в системе и редактирование личных данных;
?archive - модуль, позволяющий производить операции над договорами;
?products - модуль, позволяющий производить операции над продукцией;
?member1 - модуль, позволяющий производить операции над предприятиями.
В таблице 4.1 перечислены методы используемых модулей.
Таблица 4.1 ? Методы модулей
МетодМодульMemberArchiveProductsMember1edit()++++show_all()++++view()+++del()+++del_addon()++search()++getItem()++login()+logout()+forgot()+profile()+search_prod()+add_search()+
Все модули в системе представлены в виде PHP классов. В зависимости от того какой приходит параметр $out[mode] вызывается метод класса, а нужный класс (объект) создаётся в зависимости от значения $out[act]. Например, если $out будет выглядеть следующим образом, тогда создастся новый объект Archive и выполниться его метод edit():
$out = array(act=>archive,mode=>edit);
В результате его выполнения массив $out дополниться данными метода для последующей их обработки шаблонизатором Smarty и вывода на экран.
В каждом модуле, принципы работы методов, между собой очень похожи, за тем только исключением, что в одном модуле используется один набор полей и таблица SQL, а в другом другой набор полей и таблица. Поэтому в качестве описания ниже приведены основные методы модулей системы и описание их алгоритмов.
Описание алгоритма метода View() - вначале метода проверяются права доступа, на просмотр, затем делается запрос к базе данных на получение информации и в переменную $out возвращается массив с данными о необходимом элементе (приложение А).
В остальных модулях (классах), где используется метод View(), его алгоритм выглядит аналогичным образом.
Описание алгоритма Show_all() - в алгоритме делается запрос к базе данных для получения списка