ビデオ コメント機能を実装するために効率的な 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
: 一意のコメントが属する動画の識別子 IDuser_id
: コメントを投稿したユーザーのIDcomment
: コメントの内容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(); ?>
以上がビデオコメント機能を実装するために効率的な MySQL テーブル構造を設計するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。