ホームページ >データベース >mysql チュートリアル >ビデオコメント機能を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいですか?

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

WBOY
WBOYオリジナル
2023-10-31 09:42:23801ブラウズ

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

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

ビデオ Web サイトでは、ユーザーはビデオを視聴してコメントを残すことができます。場合によっては、大量のレビュー データを保存し、これらのレビューを効率的にクエリして表示できるようにする必要があります。効率的な MySQL テーブル構造を設計することは、適切な機能を確保するための重要なステップです。この記事では、ビデオ コメント機能を実装するための効率的な MySQL テーブル構造の設計方法を紹介し、詳細なコード例を示します。

まず、ビデオ情報を格納するテーブルとコメント情報を格納するテーブルの 2 つのテーブルを作成する必要があります。次の SQL ステートメントを使用して、これら 2 つのテーブルを作成します。

CREATE TABLE videos (
    id INT AUTO_INCREMENT PRIMARY KEY,
    title VARCHAR(255) NOT NULL,
    description TEXT,
    url VARCHAR(255) NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);

CREATE TABLE comments (
    id INT AUTO_INCREMENT PRIMARY KEY,
    video_id INT NOT NULL,
    user_id INT NOT NULL,
    comment TEXT NOT NULL,
    created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
    FOREIGN KEY (video_id) REFERENCES videos(id),
    FOREIGN KEY (user_id) REFERENCES users(id)
);

上記のコードでは、ビデオ情報を保存するために videos という名前のテーブルを作成します。テーブルには次のフィールドが含まれます:

  • id: ビデオの一意の識別子 (自動増加)
  • title: タイトルビデオの最大長は 255 文字です
  • description: ビデオの説明情報。TEXT タイプを使用して
  • を保存しますurl: ビデオの URL アドレス。最大長は 255 文字です。
  • created_at: ビデオ作成のタイムスタンプ。デフォルトは現在時刻です。

同時に、名前も作成しました。 comments のテーブルは、コメント情報を格納するために使用されます。テーブルには次のフィールドが含まれます。

  • id: コメントの一意の識別子 (自動インクリメントされます)
  • video_id: 一意のコメントが属する動画の識別子 ID
  • user_id: コメントを投稿したユーザーのID
  • comment: コメントの内容TEXT タイプ
  • created_at を使用して保存されたコメント: コメント作成のタイムスタンプ。デフォルトは現在時刻です。

上記のコードでは、外部キー制約も定義して、 comments テーブルの video_id フィールドと user_id フィールドが、videos テーブルの対応するフィールドと一致していることを確認します。 テーブルと users テーブル。

次に、次のコード例を使用して、これら 2 つのテーブルにデータを挿入する方法を示します。

<?php

// 连接到数据库
$conn = new mysqli("localhost", "username", "password", "database");

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
}

// 插入视频记录
$sql = "INSERT INTO videos (title, description, url) VALUES ('视频标题', '视频描述', 'http://example.com/video')";
$conn->query($sql);

// 获取刚插入的视频的ID
$videoId = $conn->insert_id;

// 插入评论记录
$sql = "INSERT INTO comments (video_id, user_id, comment) VALUES ($videoId, 1, '这是一个好视频')";
$conn->query($sql);

// 断开数据库连接
$conn->close();

?>

上記のコード例は、videos## にデータを挿入する方法を示しています。 # table ビデオレコードを挿入し、挿入したばかりのビデオの ID を取得します。次に、ビデオの ID をパラメータとして使用して、コメント レコードを comments テーブルに挿入します。

テーブル構造を設計し、データの挿入方法を学習した後は、コメントを効率的にクエリして表示する方法も理解する必要があります。次のコード例は、特定のビデオのコメント リストをクエリする方法を示しています。

<?php

// 连接到数据库
$conn = new mysqli("localhost", "username", "password", "database");

// 检查连接是否成功
if ($conn->connect_error) {
    die("连接失败:" . $conn->connect_error);
}

// 获取指定视频的评论列表
$videoId = 1;
$sql = "SELECT * FROM comments WHERE video_id = $videoId";
$result = $conn->query($sql);

// 显示评论列表
if ($result->num_rows > 0) {
    while ($row = $result->fetch_assoc()) {
        echo "用户ID: " . $row["user_id"] . ", 评论内容: " . $row["comment"] . "<br>";
    }
} else {
    echo "暂无评论";
}

// 断开数据库连接
$conn->close();

?>

上記のコード例では、指定されたビデオ ID のコメント リストをクエリし、ループすることで各コメントのユーザーを表示します。 . IDとコメント内容。

要約すると、ビデオ コメント機能を実装するための効率的な MySQL テーブル構造を設計するには、テーブルの関係、フィールド タイプ、外部キー制約などの要素を考慮する必要があります。合理的な設計と最適化を通じて、大量のレビュー データを効率的に保存し、クエリすることができます。

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

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