すべてのページがデータベース主導のツリー階層にぶら下がっている Web サイトを作成しています。
1 つを除くすべてのノードに親ノードがあります。ノードには、役割ベースの読み取り権限がある場合があります。一部のノードには特別なルールがある場合があります (ナビゲーション メニュー内に表示しないなど)。
ノードは、他のノードへのリンクを表す場合があります (Windows のショートカットのように)。通常、ノードはページを表します。
ページは、HTML コンテンツを表示するか、プログラミングを実行します。一部のページは、サブツリー (代替マスターページとスタイルシート) のルートになる場合があります。
Linq to SQL で使用するために、Microsoft SQL Server でノード データベースをセットアップするのを手伝ってください。
私は3つのアイデアを持っています:
nullalbe フィールドがほとんどない多数の軽量テーブル。
多くの nullalbe フィールドを持つ重量ノード テーブル。
両方の最良 (または最悪): 多くの軽量テーブルへの多数の nullalbe 外部キー。
データを最もよく表しているのはどれですか? Linq to SQL で最も使いやすいのはどれですか?
データベース内のデータ整合性ルールを維持するにはどうすればよいですか? プログラミング内でそれらを強制するにはどうすればよいですか?
ノードは、リンクまたはページのいずれか (両方ではない) である必要があります。
ページは、html またはコードのいずれか (両方ではない) である必要があります。
リンクは、ルート、html、またはコードであってはなりません。
このような構造の ASP.NET サイト マップ プロバイダーを作成できますか? するべきか?
更新:より一般的な質問をしました:
SQL で 1 対 1 の関係を処理する最良の方法は何ですか?