0

ユーザーがメモを追加できるアプリケーションを構築しています。ユーザーがメモにいくつかのタグを追加し、後でそれをフィルタリングできるようにしたいと思います。これまでのところ、ユーザーは文字列での作業とLIKE%%でのフィルターを使用できます。ただし、タグが増えると、すべてではなく検索したり、演算子を使用したりする必要がある場合があるため、ニーズを完全に満たすことはできません。例:stackoverflowタグ。

次のSQL構造について考えていました

  • 'tag_id'という列を持つ'notes'というテーブルがあります
  • 'tag_id'に'text'を提供する'tags'というテーブルがあります
  • 各配列(順方向および逆方向)を変換し、それを反対の同等の[numbers <=>フロントエンドのタグ変換、およびデータベースと後続のフィルタリングのタグ変換<=>number]に置き換える関数。

問題は、このようにするのは良い考えですか?データベースをどのように構成する必要がありますか?私を助けることができる特定の記事について知っていますか?

4

1 に答える 1

0

1 つのメモに多くのタグを付けたい場合は、関係を追跡する方法を逆にすることをお勧めします。つまり、次のような言葉があります。

テーブル ノート
- フィールドノート ID
- フィールド ノート名

テーブルタグ
- フィールドタグ ID
- フィールドノートID
-フィールドタグ名

多対多の関係が必要な場合は、1) linkid 2) tagid 3) noteid の 3 つの列を持つ 3 番目のテーブルに関係を格納します。

次に、noteid=noteid のタグ テーブルをクエリするか、テーブルの結合を実行して、特定のすべてのタグを取得できます。実際の結合は、何をしようとしているかによって異なります。

于 2013-02-27T01:09:30.113 に答える