Регистрация сущности
Пример регистрации сущности с созданием нового ключа и использованием существующего. Дополнительно указывается ключ дистрибуции, который можно выбрать только из ключей, входящих в состав сущности. Ключи дистрибуции работают только при условии поддержки дистрибуции БД.
Создание сущности в SDK:
from fsclient.catalogue import (
entity as ent,
data_type as dttp
)
customer_agreement = ent.create()
customer_agreement.config = {
'name': 'CUSTOMER_AGREEMENT', # Название сущности
'description': 'Клиент-договор', # Описание сущности
'entity_keys': [
{
'name': 'AGREEMENT_RK', # Название нового ключа
'description': 'Суррогатный ключ договора', # Описание ключа
'data_type': dttp.INT # Тип данных ключа
},
ent._keys.CUSTOMER_RK # <-- Существующий ключ
]
}
customer_agreement.storage_key = [ # ключи дистрибуции (опционально)
ent._keys.CUSTOMER_RK
]
customer_agreement.save() # Регистрация новой сущности
Автоматические связи сущностей
При регистрации сущности с использованием существующих ключей, будут созданы связи между регистрируемой сущностью и всеми остальными сущностями, имеющими используемые ключи.
Тип связи в этом случае определяется по следующим правилам:
1:1- полное пересечении ключей между сущностями1:M- ключи одной из сущностей полностью входят в набор ключей другой сущности, у которой есть минимум один ключ, не входящий в набор ключей первой сущностиM:N- ключи сущностей пересекаются частично, то есть у каждой сущности из связи есть минимум один ключ, отсутствующий у другой
Созданные автосвязи появляются в каталоге связей сущностей.