Различия
Здесь показаны различия между двумя версиями данной страницы.
| Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
|
site:db [2018/11/13 11:16] susanin |
— (текущий) | ||
|---|---|---|---|
| Строка 1: | Строка 1: | ||
| - | [[site:|Наверх]] | ||
| - | |||
| - | ====== Общая архитектура базы данных ====== | ||
| - | |||
| - | Общая архитектура базы данных CRM системы, выглядит следующим образом: | ||
| - | |||
| - | {{ :site:db_scheme.jpg}} | ||
| - | |||
| - | Так же на данной схеме можно увидеть связи между отдельными таблицами. | ||
| - | |||
| - | База данных подразделяется на следующие основные таблицы: | ||
| - | |||
| - | ===== User ===== | ||
| - | |||
| - | таблица со списком пользователей, пользователей нельзя вставить просто так, их генерация должна осуществляться через сайт или API. | ||
| - | |||
| - | {{ :site:tb_user.png?direct |}} | ||
| - | |||
| - | ===== Request ===== | ||
| - | Список заявок. Одна из самых главных таблиц, она участвует практически во всех связях. | ||
| - | |||
| - | {{ :site:tb_request.png?direct |}} | ||
| - | |||
| - | ===== Service_Residence ===== | ||
| - | Услуга размещения. Помимо одинаковых полей для всех услуг имеются служебные поля, | ||
| - | которые необходимы для использования в **[[site:index#rule|rule]]** (правилах): **comments**, **documents_rule** | ||
| - | Так же имеются поля **check_ in** и **check_out** это время заезда и время выезда | ||
| - | (по-умолчанию значение из таблицы hotel берутся следующим образом: если значение | ||
| - | поля **unstandart_check_in** равно 1 (true), то берется значение пользователя в | ||
| - | противном случае берется значение из таблицы hotel, аналогичным образов работает | ||
| - | поле **check_out**) | ||
| - | Поле **guest_check_in** и поле **guest_check_out** это дата заезда и дата выезда | ||
| - | |||
| - | ===== Service_residence_guest ===== | ||
| - | таблица, в которой хранится информация о гостях по заявке услуги **Service_residence** | ||
| - | {{ :site:tb_service_residence_guest.png?direct |}} | ||
| - | |||
| - | и | ||
| - | |||
| - | ===== Service_transfer ===== | ||
| - | Услуга трансфера. Так же помимо одинаковых полей для всех услуг имеются служебные поля, | ||
| - | которые необходимы для использования в rule (правилах): **comments**, **documents_rule** | ||
| - | |||
| - | и | ||
| - | |||
| - | ===== Service ===== | ||
| - | Прочие услуги, могут быть различны и зависят от значения поля **service_type** | ||
| - | Это основные услуги системы, каждая из таблиц является равнозначной и связаны с | ||
| - | таблицей **[[site:index#request:|request]]** через поле **request**. | ||
| - | |||
| - | Так же в этих таблицах имеется список одинаковых полей | ||
| - | |||
| - | {{ :site:tb_service_common.png?direct |}} | ||
| - | |||
| - | Так же используется список специальных полей: ''**comments**, **documents_rule**'' | ||
| - | для использования в **[[site:index#rule|Rule]]** (правилах) | ||
| - | |||
| - | Расширение Service осуществляется с помощью **[[site:index#orm|ORM полей]]** | ||
| - | |||
| - | ===== Hotels ===== | ||
| - | {{ :site:tb_hotels.png?direct |}} | ||
| - | |||
| - | В таблице перечислен список гостиниц, которая связана с таблицей **[[:site:index#service_residence|Service_Residence]]** | ||
| - | В данной таблице имеется служебное поле **rooms_rule** для использования в **Rule** (правилах) | ||
| - | Поля **check_in** и **check_out** это стандартные значения времени заезда и времени выезда в гостиницу. | ||
| - | |||
| - | ===== Hotel_Room ===== | ||
| - | {{ :site:tb_hotel_room.png?direct |}} | ||
| - | |||
| - | Данная таблица с номерами гостиниц используется в [[site:main#markup|маркапах]] | ||
| - | |||
| - | ===== Rule ===== | ||
| - | {{ :site:tb_rule.png?direct |}} | ||
| - | |||
| - | Таблица для определения доступа к различным сущностям. Поля **user_id** и **user_type** работают | ||
| - | по принципу замещения, если указано поле **user_id**, то поле **user_type** игнорируется. Подробнее | ||
| - | можно посмотреть в [[site:main#rule|Правилах]]. | ||
| - | По умолчанию все разрешено, кроме запрещенного. | ||
| - | |||
| - | ===== Markup_rule, Markup_data и Markup ===== | ||
| - | {{:site:tb_markup.png?direct |}}{{:site:tb_markup_rule.png?direct |}}{{:site:tb_markup_data.png?direct |}} | ||
| - | |||
| - | |||
| - | **Markup** – список существующих [[:site:main#markup|маркапов]] | ||
| - | В поле **interval** попадает весь список дат применения маркапов, в поле **geography** попадает весь список городов | ||
| - | **Markup_rule** – правила применения маркапов. | ||
| - | |||
| - | Для одного маркапа может быть создано много правил | ||
| - | |||
| - | **Markup_data** – связующая таблица между объектом применения маркапов и самим маркапом | ||
| - | |||
| - | Отвечает за то, к чему будет применен маркап. Поле **Object_type** объект применения маркапа, | ||
| - | который задается константами | ||
| - | |||
| - | <file PHP models/Rule.php> | ||
| - | const OBJECT_TYPE_USER = 10; // Пользователь User | ||
| - | const OBJECT_TYPE_COMPANY = 20; // Компания | ||
| - | </file> | ||
| - | |||
| - | Поле **object_id** это ID текущего объекта | ||
| - | |||
| - | ===== ORM ===== | ||
| - | Поля расширения сущности. | ||
| - | {{ :site:tb_orm.png?direct |ORM}} | ||
| - | |||
| - | **object_type** – тип сущности | ||
| - | |||
| - | <file PHP models/Rule.php> | ||
| - | const OBJECT_TYPE_USER = 10; // Пользователь User | ||
| - | const OBJECT_TYPE_COMPANY = 20; // Компания CompanyData | ||
| - | const OBJECT_TYPE_HOTEL = 30; // Гостиница Hotel | ||
| - | const OBJECT_TYPE_REQUEST = 40; // Заявка Request | ||
| - | const OBJECT_TYPE_SERVICE = 50; // Услуга Service | ||
| - | const OBJECT_TYPE_SERVICE_TRANSFER = 51; | ||
| - | const OBJECT_TYPE_SERVICE_RESIDENCE = 52; | ||
| - | const OBJECT_TYPE_DOCUMENT = 60; // Документ Document | ||
| - | </file> | ||
| - | |||
| - | Данные по ORM объектам попадают в специализированные таблицы: | ||
| - | {{:site:tb_company_data.png?direct |Данные компании}}{{:site:tb_service_data.png?direct |Данные услуги}}{{:site:tb_hotel_data.png?direct |Данные гостиницы}} | ||
| - | |||