ホームページ  >  記事  >  データベース  >  ビデオのような機能を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいですか?

ビデオのような機能を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいですか?

WBOY
WBOYオリジナル
2023-10-31 12:02:061012ブラウズ

ビデオのような機能を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいですか?

ビデオのような関数を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいでしょうか?

背景
最新のソーシャル メディア プラットフォームでは、ユーザーが好きなコンテンツに対する承認やサポートを表明する一般的な方法が「いいね」です。動画プラットフォームにとって、動画のような機能を実装することは非常に重要です。この記事では、ビデオのような関数を実装するための効率的な MySQL テーブル構造を設計する方法を紹介し、いくつかのコード例を示します。

設計アイデア
MySQL テーブル構造を設計するときは、次の側面を考慮する必要があります: ユーザー、ビデオ、いいねの関係の保存方法、いいねの数のクエリ、ユーザーが好きかどうかのクエリ、ユーザーのポイント いいねした動画など

  1. ユーザー テーブル
    まず、ユーザー ID、ユーザー名などのユーザーの基本情報を保存するユーザー テーブルを作成する必要があります。

CREATE TABLE user (
id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255 ) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

  1. Video table
    次に、次のことを作成する必要があります。ビデオ テーブル 。ビデオ ID、ビデオ タイトルなど、ビデオの基本情報を保存するために使用されます。

CREATE TABLE video (
id int(11) NOT NULL AUTO_INCREMENT,
title varchar(255 ) NOT NULL,
PRIMARY KEY (id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

  1. Like 関係テーブル
    次に The like を作成します関係テーブルは、ビデオに対するユーザーの類似関係を保存するために使用されます。各レコードは、ビデオに対するユーザーの同様の操作を表します。このテーブルには、ユーザー ID とビデオ ID の 2 つの外部キーが含まれている必要があります。

CREATE TABLE like_relation (
id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) ) NOT NULL,
video_id int(11) NOT NULL,
主キー (id),
一意のキー user_video_unique (user_id,video_id),
制約 like_user_fk 外部キー (user_id) 参照 user ( id) ON DELETE CASCADE ON UPDATE CASCADE、
制約 like_video_fk 外部キー (video_id) 参照 video (id) ) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

コード例
以下は、ビデオのような関数を実装するために使用される一般的に使用される SQL ステートメントの一部です。

  1. 動画の「いいね!」の数をカウントする
    SELECT COUNT(*) FROM like_relation WHERE video_id = 1;
  2. ユーザーが動画を気に入っているかどうかをクエリする
    SELECT COUNT ( *) FROM like_relation WHERE user_id = 1 AND video_id = 1;
  3. ユーザーが気に入った動画をクエリ
    SELECT video_id FROM like_relation WHERE user_id = 1;
  4. ユーザーが気に入った動画
    INSERT INTO like_relation (user_id, video_id) VALUES (1, 1);
  5. ユーザーがビデオのいいねをキャンセル
    DELETE FROM like_relation WHERE user_id = 1 AND video_id = 1;

概要
video like 関数を実装するための効率的な MySQL テーブル構造を設計するには、ユーザー テーブル、ビデオ テーブル、like リレーションシップ テーブルの設計と、like 関連の操作を実行するためのいくつかの一般的な SQL ステートメントを考慮する必要があります。合理的なテーブル構造設計と最適化されたクエリ ステートメントを通じて、同様の関数のパフォーマンスと効率を向上させることができます。

以上がビデオのような機能を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。