SQL Server 2008 で親子関係を構築しようとしていますが、うまく機能しません。
Presets (ルート レベル ノード) があり、PresetItems (子ノード) があります。
Preset には PresetItems のみを含めることができますが、PresetItems には子ノードとして他の PresetItems を含めることができます。
含まれる PresetItems が異なる多くのプリセットを作成できます。
PresetItems は、さまざまなプリセット構成を構築するために、多くの異なるプリセットで再利用できます。
これが使用される方法は、レポートを動的に作成することです。Preset はレポートの名前です。PresetItems は、レポートのさまざまな部分です。これらのパーツ (PresetItem) は、「Year to Date Graph」などのレポートのセクションのようなものです。この PresetItem にはテキストの説明が含まれ、グラフを含む別の PresetItem をこの PresetItem セクションの子として追加できます。
このプロセスは、レポートのすべての部分が組み立てられるまで続きます。
以下に図を示します。
Client "A" Report (Preset 1)
-- Overview (PresetItem 1) - contains boilerplate and maybe some dynamic data
-- YTD Report (PresetItem 2) - contains boilerplate
-- YTD Graph (PresetItem 3) - contains a graph created dynamically from SQL Server data
-- Core References (PresetItem 4) - contains a table of dynamic data
-- Summary (PresetItem 5) - contains boilerplate
Client "B" Report (Preset 2)
-- Overview (PresetItem 1) - contains boilerplate and maybe some dynamic data
-- Monthly Balance Sheet (PresetItem 8) - contains dynamic data
-- YTD Report (PresetItem 2) - contains boilerplate
-- YTD Graph (PresetItem 3) - contains a graph created dynamically from SQL Server data
-- Summary (PresetItem 5) - contains boilerplate
...など...
一部の PresetItems は、さまざまなレポートまたは Presets に組み立てることができます。
これは、データベース テーブルを構築した方法ですが、多対多テーブルに 2 つの主キーがあるため、親子関係を作成できません。
Preset Table
-- Id (key)
-- Name
PresetItem Table
-- Id (key)
-- Name
-- Description
-- DataResource
-- (other columns)
PresetPresetItem (many-to-many table)
-- PresetId (key)
-- PresetItemId (key)
-- ParentId
-- SortOrder
探している結果を得るために正しい軌道に乗っていますか? PresetItemId と ParentId の間の PresetPresetItem テーブルで親子関係を作成できません。これは、もう一方の主キー (PresetId) を省略したと不平を言うためです。
なぜこれを行っているのかは理解していますが、今はそれを修正する方法がわかりません。私がこれについてすべて間違っている場合は、私に知らせてください。
どんな助けでも大歓迎です。
ありがとう。