1

すべてのページがデータベース主導のツリー階層にぶら下がっている Web サイトを作成しています。

1 つを除くすべてのノードに親ノードがあります。ノードには、役割ベースの読み取り権限がある場合があります。一部のノードには特別なルールがある場合があります (ナビゲーション メニュー内に表示しないなど)。

ノードは、他のノードへのリンクを表す場合があります (Windows のショートカットのように)。通常、ノードはページを表します。

ページは、HTML コンテンツを表示するか、プログラミングを実行します。一部のページは、サブツリー (代替マスターページとスタイルシート) のルートになる場合があります。

Linq to SQL で使用するために、Microsoft SQL Server でノード データベースをセットアップするのを手伝ってください。

私は3つのアイデアを持っています:

  1. nullalbe フィールドがほとんどない多数の軽量テーブル。

    #1 nullalbe フィールドがほぼゼロの軽量テーブルが多数ある

  2. 多くの nullalbe フィールドを持つ重量ノード テーブル。

    #2 nullalbeフィールドが多い重量級ノードテーブル

  3. 両方の最良 (または最悪): 多くの軽量テーブルへの多数の nullalbe 外部キー。

    #3多くの軽量テーブルへのnullalbe外部キーがたくさん

データを最もよく表しているのはどれですか? Linq to SQL で最も使いやすいのはどれですか?

データベース内のデータ整合性ルールを維持するにはどうすればよいですか? プログラミング内でそれらを強制するにはどうすればよいですか?

  • ノードは、リンクまたはページのいずれか (両方ではない) である必要があります。

  • ページは、html またはコードのいずれか (両方ではない) である必要があります。

  • リンクは、ルート、html、またはコードであってはなりません。

このような構造の ASP.NET サイト マップ プロバイダーを作成できますか? するべきか?


更新:より一般的な質問をしました:

SQL で 1 対 1 の関係を処理する最良の方法は何ですか?


関連する質問:
データベースにデータ整合性ルールを適用するにはどうすればよいですか?

4

1 に答える 1

4

あなたの投稿を読んだ後の私の最初の印象は、あなたが提案しているように見える範囲で、1 つのテクノロジー (この場合は linq) がデータベース スキーマの設計に大きな影響を与えることを非常に嫌うということです。

ビジネス/プレゼンテーションレイヤーを構築するためにどのテクノロジーを選択したかに関係なく、スキーマはほとんど同じであるべきだと思います。

誤解していないことを願っています。

于 2008-09-11T16:07:33.327 に答える