複数のルートを持つ doctrine beahaviour NestedSet を使用してテーブルのツリー構造を作成するためにリファクタリングしている Doctrine 1.2 プロジェクトがあります。
私が必要としているのは、祖先から子孫への継承 (OO の常識ではありません) であり、子孫は、自身のプロパティが欠落している最も近い祖先からプロパティを継承します。関係でも同じことが起こります。
例を挙げて説明しましょう:
Category:
actAs:
NestedSet:
hasManyRoots: true
rootColumnName: root_id
columns:
name: string(50)
another_property: string(50)
active: boolean
Tag:
columns:
value: string(50)
CategoryTag:
columns:
category_id: integer
tag_id: integer
私が実行したいのは:
- カテゴリがアクティブかどうかを取得します。つまり、すべての先祖がアクティブかどうかを確認します
- 特定のカテゴリで another_property が欠落している場合は、存在する最も近い祖先から継承します
- 特定のカテゴリのタグを取得します。タグが欠落している場合は、最も近い祖先から取得します
速度と柔軟性を最大化するための最善のアプローチとして何を提案しますか?