Сущности / Модель данных


Сущность описывается в json файле

{
    "code" : "session",              ## id сущности
    "name": {                        ## имя в разных локализациях
        "_def" : "Сессия"
    },
    "baloon": {                      ## всплывающее сообщение
        "_def": "Системная сессия"
    },
    "parent": "core/Entity",         ## родительская сущность
    "info" : null,                   ## информация о сущности (для разработчика)
    "uniques": [                     ## уникальные свойства
        "ip4,ip4x,proxy"
    ],
    "props": [                       ## массив свойств
        {
            "code": "sysuser_id",       ## код
            "name": {                   ## имя
                "_def" : "Пользователь"
            },           
            "label": "©",               ## метка (для интерфейсов)
            "baloon": {                 ## всплывающее обозначение
                "_def" : "Пользователь, инициировавший сессию"
            },
            "type": "association",      ## тип свойства
            "length" : null,            ## длина свойства в символах
            "nn": true,                 ## признак обязательности
            "index": null,              ## необходимость индексации
            "default": 2,               ## значение по умолчанию
            "info": null,               ## информация о свойстве (для разработчика)
            "association": {            ## ассоциативная связь свойств
                "entity" : "core/co_Sysuser",     ## сущность
                "prop" : "id"                     ## связанное свойство
            }
        }
    ]
}


Тип свойства

  • ::id:: – тип, присущий счётчикам
    • для PostgSQL это BIGINT
  • ::hid:: – строка в 32 символа
  • timestamp
  • string
  • integer
  • real
  • bool
  • text

Значение свойства по умолчанию

  • ::counter:: – следующее значение счётчика, связанного с этим свойствам сущности
    • для PostgrSQL это nextval('<имя_счётчика>'), имя счётчика генерируется автоматически
  • ::hid:: – уникальная md5 строка (32 символа)
    • для PostgrSQL это md5(to_char(now(), 'DDDYYYYNNDDHH24MISSUS') || random())
  • ::now:: – текущий штапм времени (обычно current_timestamp)
  • <число>
  • <строка>