Как проверить, связан ли бин

Я новичок в SugarCRM и хотел бы узнать кое-что об отношениях. У меня есть bean-компонент, скажем, учетная запись и идентификатор записи в базе данных, скажем, контакт. Теперь я хотел бы знать, связана ли уже эта запись с учетной записью.

Насколько я мог узнать, есть несколько способов получить результат

  1. Выполните SQL-запрос непосредственно к базе данных в связанных таблицах.
  2. Загрузите отношение из учетной записи и выполните цикл по компонентам, чтобы увидеть, смогу ли я найти компонент с предоставленным идентификатором записи.

Оба кажутся мне немного неуклюжими. Я хотел бы знать, есть ли лучший способ решить эту проблему. Я надеялся, что в классе link2 есть метод «содержит» или «имеет», но, к сожалению, это не так.


person jjtbsomhorst    schedule 06.03.2013    source источник


Ответы (1)


Я не знаю никакого способа сделать это; но возможно, что-то скрыто в Bean Framework.

Обычно я работаю с большими наборами данных и пакетной обработкой в ​​SugarCRM, поэтому почти всегда использую необработанные SQL-запросы. Они намного быстрее, чем Bean Framework (по моему опыту, в 100-1000 раз быстрее или даже больше), а код запроса достаточно прост, чтобы вставить какую-нибудь простую служебную функцию.

Недостатком подхода с использованием необработанного SQL является то, что каждый отдельный вид Bean-компонентов в SugarCRM может по-разному относиться к другим Bean-компонентам. То есть они не все используют одно и то же соглашение - например. таблица accounts_contacts обрабатывает отношения между учетными записями и контактами, тогда как для Quotes в Quotes есть просто поле с именем account_id.

Из-за этого вы не можете просто написать одну служебную функцию SQL-relationship-search и покончить с этим. Вам понадобится отдельный для каждой комбинации бобов, которую вы будете искать.

Для меня это лучший вариант, несмотря на проблемы с эффективностью при работе с большим количеством компонентов Bean.

Если вы работаете с пакетными данными, обязательно используйте подход SQL, даже если в Bean Framework есть простая функция для поиска отношений.

Все сводится к тому, насколько эффективно и быстро вам нужно, чтобы ваш код работал.

person Kyle Lowry    schedule 06.03.2013