site:db

Это старая версия документа!


Наверх

Общая архитектура базы данных

Общая архитектура базы данных CRM системы, выглядит следующим образом:

db_scheme.jpg

Так же на данной схеме можно увидеть связи между отдельными таблицами.

База данных подразделяется на следующие основные таблицы:

таблица со списком пользователей, пользователей нельзя вставить просто так, их генерация должна осуществляться через сайт или API.

Список заявок. Одна из самых главных таблиц, она участвует практически во всех связях.

Услуга размещения. Помимо одинаковых полей для всех услуг имеются служебные поля, которые необходимы для использования в 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

и

Услуга трансфера. Так же помимо одинаковых полей для всех услуг имеются служебные поля, которые необходимы для использования в rule (правилах): comments, documents_rule

и

Прочие услуги, могут быть различны и зависят от значения поля service_type Это основные услуги системы, каждая из таблиц является равнозначной и связаны с таблицей request через поле request.

Так же в этих таблицах имеется список одинаковых полей

Так же используется список специальных полей: comments, documents_rule для использования в Rule (правилах)

Расширение Service осуществляется с помощью ORM полей

В таблице перечислен список гостиниц, которая связана с таблицей Service_Residence В данной таблице имеется служебное поле rooms_rule для использования в Rule (правилах) Поля check_in и check_out это стандартные значения времени заезда и времени выезда в гостиницу.

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

Таблица для определения доступа к различным сущностям. Поля user_id и user_type работают по принципу замещения, если указано поле user_id, то поле user_type игнорируется. Подробнее можно посмотреть в Правилах. По умолчанию все разрешено, кроме запрещенного.

Markup – список существующих маркапов В поле interval попадает весь список дат применения маркапов, в поле geography попадает весь список городов Markup_rule – правила применения маркапов.

Для одного маркапа может быть создано много правил

Markup_data – связующая таблица между объектом применения маркапов и самим маркапом

Отвечает за то, к чему будет применен маркап. Поле Object_type объект применения маркапа, который задается константами

models/Rule.php
    const OBJECT_TYPE_USER              = 10;   // Пользователь User
    const OBJECT_TYPE_COMPANY           = 20;   // Компания

Поле object_id это ID текущего объекта

Поля расширения сущности. ORM

object_type – тип сущности

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

Данные по ORM объектам попадают в специализированные таблицы:

Данные компанииДанные услугиДанные гостиницы

Таблицы, описывающие поведение системы на изменение статусов заявки и услуги.

Документы к заявке или к услуге

Комментарии к услуге или заявке

Логирование

Шаблоны документов

  • site/db.1542108557.txt.gz
  • Последние изменения: 2020/09/24 09:42
  • (внешнее изменение)