1

tagsこれらのタグでタグ付けされたイベントを呼び出すテーブルを検索するアプリを作成しています。と の 2 つのテーブルがありtagseventsユーザーが何かを検索すると、アプリはテーブルを検索し、tagsテーブルから関連情報の情報を表示しeventsます。

これは、アプリケーションがデータを検索して表示する方法の流れです。

User searches -> 
SQL search on tags table -> 
using tag_ids found, search for relevant events on events table -> 
display event data

私はこれについて正しい方法で考えていますか?私はそうではないかもしれないと感じています。、などtag_idsという名前の各列をテーブルに保存したくありません。また、ユーザーがイベントに添付できるタグの数を制限したくありません。ただし、SQL の主要な処理をアプリケーションに依存させたくないので、タグをオブジェクトとしてテーブルに保存したくありません。これは可能ですか、それとも検索方法を変更する必要がありますか?tag_id_1tag_id_2eventsJSON

4

2 に答える 2

3

ここに N:N の関係があります。複数の異なるイベントに追加できる複数のタイプのタグがあります。それらをリンクするには、別のテーブルを作成する必要がありますtags_per_event。たとえば、テーブルです。

テーブルには、タグ自体 (id、説明など) に関する情報のみを保存しtagsます。テーブルでは、eventsイベント (id、説明、ソース...) のみを説明します。最後に、tags_per_eventテーブルには、各イベントのタグごとに 1 つの行があります。各行には、タグの ID とイベントの ID があります。情報を検索するとき、どのタグがどのイベントに割り当てられたか、およびそれらに関する情報 (説明の追加など) に関するすべての情報を取得するために、3 つのテーブルに参加する必要があります。

ここに画像の説明を入力

于 2013-07-04T22:51:06.997 に答える