php - 如何检查bean是否相关

标签 php mysql relationship sugarcrm

我对 SugarCRM 还很陌生,我想了解一些有关人际关系的信息。我有一个 bean(比如帐户)和数据库中记录的 ID(比如联系人)。现在我想知道该记录是否已与该帐户相关。

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

  1. 直接对数据库中的相关表执行 SQL 查询
  2. 从帐户加载关系并循环访问 bean,看看是否可以找到具有提供的记录 ID 的 bean。

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

最佳答案

据我所知,没有任何方法可以做到这一点;但 Bean 框架中可能隐藏着某些东西。

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

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

因此,您不能仅编写一个 SQL 关系搜索实用函数并使用它来完成。对于要搜索的每种 Bean 组合,您都需要一个单独的组合。

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

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

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

关于php - 如何检查bean是否相关,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15243534/

相关文章:

php - magento:显示禁用的产品

php - PHP 中的多层......正确的方法?

php - 将 Ajax 数据中的第二个值传递给 PHP

mysql - 更新查询在工作台中中断?

查找两个推特用户关系的算法

php - 三向(模型)关系

php - 如何使用 PHP 中的服务帐户将文件上传到 Google Drive?

php - 中间件影响数据库中插入的绑定(bind)

php - 与 PHP 中的日期进行比较

language-agnostic - UML 关系 - 虚线与实线