まず第一に、英語は私の母国語ではありません。私の質問を自由に編集してください。気分を害する可能性のある間違いや、問題を明らかにしていないことをお詫びします。
多数の結合を含む SQL クエリがいくつかあります。これらの結合は、クラスター化されたインデックスに基づいています (心配する必要はありません)。一部の結合は、正規化を尊重するためだけに使用され、メンテナンスが直感的であるためです。ただし、一部をスキップできる場合もあります。ベスト プラクティスの観点から、これらの結合について何をすべきかは明確ではありません。
編集:
簡単な例:
select *
from things
join things_categories on
things_categories.id_thing = things.id_thing
join categories on
categories.id_category = things_categories.id_category
join categories_properties on
categories_properties.id_category = categories.id_category
where
categories_properties.bo_default = 1
しかし、それは可能です:
select *
from things
join things_categories on
things_categories.id_thing = things.id_thing
join categories_properties on
categories_properties.id_category = things_categories.id_category
where
categories_properties.bo_default = 1
2番目の結合は必要ありません(データベースレベルで整合性があります)。コードをより直感的にし、データベースの正規化を尊重するためだけに存在します。正規化を尊重してコードをより直感的にするために、可能な限り最小で効率的なパスをたどるべきか、不要な結合を残すべきかはわかりません。
任意のヒント?
ではごきげんよう。