воскресенье, 16 января 2011 г.

Связи в SugarCRM

В папках "/metadata"("/custom/metadata") хранятся связи под которые созданы отдельные таблицы в базе данных. Это видно по тому что связь указывается в переменной:
$dictionary['product_bundle_quote']=...

В файле vardef.php любого модуля тоже все его поля хранятся в этой переменной:
$dictionary['Product']=...


Связи же, под которые не нужны отдельные таблицы в базе, определяются в файле vardef.php, и тоже хранятся в переменной дикшенери, но уже под индексом своего модуля:
$dictionary['Product']['relationships']['products_accounts']=...

Так что такое переменная $dictionary?
Это переменная, которая представляет таблицы базы данных, которые могут выражаться либо модулями, либо связями между модулями. Под индексом первого уровня этого массива находится следующая структура:
'table' - имя этой таблицы в базе данных
'fields' - поля, которые находятся в этой таблице (также могут быть поля которые и не хранятся в базе, а просто временно сохранятся в обьекте, которые отображает эту таблицу. Нужен соответсвующий флаг в таком поле. Такие поля скорее всего калькуляционные -- динамически вычисляются по определенным состояниям приложения)
'indexes' - пометка на поля, которым нужно индексирование в базе.
'relationships' - определяются связи с другими таблицами в базе данных.
'comment' - описание предназначения таблицы
'audited' - булиновское значение, которое определяем хранить ли история этой таблицы в отдельной таблице(логи).

Комментариев нет:

Отправить комментарий