5. Слой источников данных - Seliverstov-S-A/Copiriters GitHub Wiki
В качестве паттерна для реализации данного слоя было решено выбрать паттерн Data Mapper. Данный шаблон хорошо сочетается с паттерном Domain Model и позволяет абстрагировать приложение от конкретной реализации слоя доступа к данным. Из особенностей реализации можно отметить введение дополнительного поля для пользователя, которое указывает на его тип. Это позволило хранить пользователей с двумя ролями в одной таблице.
Для реализации слоя источников данных использовалась файловая база данных SQLite. Далее приведен скрипт инициализации базы данных
create table t_users (
c_id INTEGER NOT NULL,
c_fio TEXT,
c_password TEXT,
c_login TEXT,
c_email TEXT,
c_reg_date TEXT,
c_id_role INTEGER NOT NULL,
c_owned_money INTEGER NOT NULL,
c_holded_money INTEGER NOT NULL,
PRIMARY KEY (c_id))
create table t_zakaz (
c_id INTEGER NOT NULL,
c_uid INTEGER,
c_money TEXT NOT NULL,
c_create_date TEXT NOT NULL,
c_address_and_time TEXT NOT NULL,
c_caption TEXT NOT NULL,
c_id_state INTEGER NOT NULL,
c_descr TEXT NOT NULL,
PRIMARY KEY (c_id))
create table t_zayavka (
c_id INTEGER NOT NULL,
c_id_povar INTEGER NOT NULL,
c_id_zakaz INTEGER NOT NULL,
c_id_state INTEGER NOT NULL,
c_create_date TEXT NOT NULL,
c_close_date TEXT NOT NULL,
c_file_passed TEXT NOT NULL,
c_comments TEXT NOT NULL,
PRIMARY KEY (c_id))