2

動画 Web サイトでは、すべての動画に複数のタグを付けることができます。各ビデオに関する情報を含むビデオ テーブルがあります。タグの保存方法を教えてください。タグに関する情報を挿入および選択する方法を教えてもらえますか?

ありがとう。

4

3 に答える 3

3

ビデオ テーブルにビデオごとに 1 つのレコードがあると仮定すると、次のようになります。

Video
----------
ID
Title
etc.

次に、次のようなタグ用の別のテーブルを作成します。

Tag
----------
ID
Title

2 つを関連付けるために、関連付けテーブルを作成します。

VideoTag
----------
VideoID
TagID

そのテーブルの列は、VideoおよびTagテーブルへの外部キーにすぎません。Videoこの中間テーブルを使用すると、とエンティティ間の多対多の関係を維持できます。これはTag、各ビデオに多数のタグを付けることができ、各タグを多数のビデオに配置できるためです。

于 2012-10-03T14:17:05.000 に答える
2

VideoList私が提案できる設計の 1 つは、 、TagList、 の3 つのテーブルを作成することですVideo_TagVideoListと多対多の関係がありtagListます。次に、それらの関連付けが表にリストされVideo_Tagます。

CREATE TABLE VideoList
(
    ID INT,
    VideoName VARCHAR(150),
    -- other columns here,
    CONSTRAINT tb_pk PRIMARY KEY(ID),
    CONSTRAINT tb_uq UNIQUE(VideoName)
);

一意の値を持つようUNIQUEに、列に制約を追加しました。VideoName

CREATE TABLE TagList
(
    ID INT,
    TagName VARCHAR(150),
    -- other columns here,
    CONSTRAINT tb2_pk PRIMARY KEY(ID),
    CONSTRAINT tb2_uq UNIQUE(TagName)
);

UNIQUEcolumn にも制約を追加しましたTagName

CREATE TABLE  Video_Tag
(
    RecordID INT,
    VideoID INT,
    TagID INT
    CONSTRAINT tb3_pk PRIMARY KEY(RecordID),
    CONSTRAINT tb3_uq UNIQUE(VideoID, TagID),
    CONSTRAINT tb3_fk1 FOREIGN KEY (VideoID) REFERENCES VideoList(ID),
    CONSTRAINT tb3_fk2 FOREIGN KEY (TagD) REFERENCES TagList(ID)
);
于 2012-10-03T14:19:35.490 に答える
1

最も一般的なアプローチは、3 つのテーブルを持つことです。

  • Videos
  • Tags
  • VideoTags

VideoTags が関連テーブルとして機能し、列の基本セット: VideoID, TagID.

于 2012-10-03T14:15:54.117 に答える