2011-07-24 9 views
0

私はASP.NET MVC3でLINQ2SQLを使用してブログを作成し始めていますが、投稿のタグを作成する上で最良の方法は何か疑問です。Blog DB質問タグ

シナリオ1: は、私は単純にカンマでblogPoststagsという名前のテーブル、別々のすべてのタグに別の行を追加し、私はいくつかのタグを含むすべてのポストを検索するときに、タグに、それは私が後だテキストを含んでいる場合、私はちょうど*を選択します。

シナリオ2: 別のテーブルPostTagsと別のテーブルTagsを追加します。 PostTagsは、postIDtagIDを含みます。 Tagsは、IDTagを含んでいます。また、これらのテーブル間にDB関係を設定します。

これは最高の解決策ですか?

+0

シナリオ1では、「別の**列**を追加する」という意味で、行ではないことを意味します。 –

答えて

2

シナリオ2は、別のテーブルのタグを明確に区切っているため、データベースをより正規化し、タグで簡単にクエリを行うことができます。これに加えて、これらのタグでより簡単にクエリを実行し、ブログ投稿とは独立して表示することができます。

+2

+あなたは非常に高速にクエリを行うtagIDとpostIDにデータベースインデックスを持つことができます。 –

0

シナリオ1はオプションではありませんが、明らかにデータベース設計が不十分で、冗長なデータが導入されていて、テーブルに行がたくさんある場合はクエリが効率的ではありません。