我正在构建一个相当大的CodeIgniter应用程序,并首先尽可能规范化 datbase。
让我开始,网站响应不慢或出现任何问题。只是想知道您对许多加入的看法?
$this -> db -> join('A', 'B.user_id = A.id', 'left');
$this -> db -> join('C', 'A.id = C.user_id', 'left');
$this -> db -> join('D', 'B.project_id = D.id', 'left');
$this -> db -> join('E', 'E.client_id = C.id', 'left');
如您所见,这将仅在连接查询中调用 5 个表。获取应用程序数据的每个细节是非常需要的,3个表只是链接表。
我可以在这样的连接上吃诚实的洋葱吗?
注意:我需要区分表,但我正在等待,直到其他所有内容都经过代码优化
问候克里斯
我目前正在重新开发代码点火器应用程序/站点。为了提供更大的灵活性并限制冗余数据的拉取,我将许多单个大表拆分为多个小表。这导致我的查询在我的一些管理查询上最多有 8 个联接(在我看来,对于管理员查询来说不是问题。
在前端,许多查询已从无连接更改为最多 5 个,这实际上提高了站点的速度,因为我提取的数据仍然比旧的大表布局少。
简而言之 - 我不认为多个联接有什么问题,它们有助于减少被拉取的数据量,并且在任何大型应用程序中都是可以预期的。
但是,这与你得到的任何其他答案一样,是一种意见,完全取决于你的表结构和你使用的索引,而不是连接的数量。