0

我对 SugarCRM 还很陌生,我想了解一些关于人际关系的知识。我有一个bean,可以说帐户和数据库中记录的ID,可以说是联系人。现在我想知道这条记录是否已经与该帐户相关。

据我所知,有几种方法可以得到结果

  1. 直接对相关表中的数据库进行 SQL 查询
  2. 从 Account 加载关系并循环遍历 bean 以查看是否可以找到具有提供的记录 id 的 bean。

对我来说,两者都显得有点笨拙。我想知道是否有更好的方法来解决这个问题。我希望在 link2 类中有一个 'contains' 或 'has' 方法,但不幸的是事实并非如此。

4

1 回答 1

2

据我所知,没有任何方法可以做到这一点;但有可能存在埋在 Bean 框架中的东西。

通常我在 SugarCRM 中处理大型数据集和批处理,所以我只使用原始 SQL 查询来处理大多数事情。它们比 Bean 框架快很多(根据我的经验,快 100 到 1000 倍甚至更多),并且查询代码很容易放入一些简单的实用程序功能。

原始 SQL 方法的缺点是 SugarCRM 中每种不同类型的 Bean 都可以以不同的方式与其他 Bean 相关联。也就是说,它们并不都使用相同的约定 - 例如,该accounts_contacts表处理 Accounts 和 Contacts 之间的关系,而对于 Quotes 在 Quotes 中只有一个名为 的字段account_id

因此,您不能只编写一个 SQL-relationship-search 实用程序函数并完成它。对于要搜索的每个 bean 组合,您都需要一个单独的组合。

对我来说,在使用大量 Bean 时,无论出于效率问题,这是最好的选择。

如果您正在处理批处理数据,即使 Bean 框架中有一个简单的函数来进行关系查找,也一定要使用 SQL 方法。

这取决于您需要运行代码的效率和速度。

于 2013-03-06T23:51:54.670 回答