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))