Maison  >  Article  >  base de données  >  Comment concevoir une structure de table MySQL efficace pour implémenter la fonction de type vidéo ?

Comment concevoir une structure de table MySQL efficace pour implémenter la fonction de type vidéo ?

WBOY
WBOYoriginal
2023-10-31 12:02:06956parcourir

Comment concevoir une structure de table MySQL efficace pour implémenter la fonction de type vidéo ?

Comment concevoir une structure de table MySQL efficace pour implémenter la fonction de type vidéo ?

Contexte
Sur les plateformes de médias sociaux modernes, les likes sont un moyen courant pour les utilisateurs de montrer leur approbation et leur soutien pour le contenu qu'ils aiment. Pour une plateforme vidéo, il est très important d’implémenter la fonction de type vidéo. Cet article expliquera comment concevoir une structure de table MySQL efficace pour implémenter la fonction de type vidéo et fournira quelques exemples de code.

Idées de conception
Lors de la conception de la structure de la table MySQL, vous devez prendre en compte les aspects suivants : la méthode de stockage de la relation entre les utilisateurs, les vidéos et les likes, l'interrogation du nombre de likes, la requête si l'utilisateur aime, l'interrogation des vidéos que le l'utilisateur a aimé, etc.

  1. Table utilisateur
    Tout d'abord, vous devez créer une table utilisateur pour stocker les informations de base de l'utilisateur, telles que l'ID utilisateur, le nom d'utilisateur, etc.

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

  1. 视频表
    其次需要创建一个视频表,用于存储视频的基本信息,如视频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. 点赞关系表
    接下来创建一个点赞关系表,用于存储用户对视频的点赞关系。每一条记录表示一个用户对一个视频的点赞操作。这个表需要包含用户ID和视频ID两个外键。

CREATE TABLE like_relation (
id int(11) NOT NULL AUTO_INCREMENT,
user_id int(11) NOT NULL,
video_id int(11) NOT NULL,
PRIMARY KEY (id),
UNIQUE KEY user_video_unique (user_id,video_id),
CONSTRAINT like_user_fk FOREIGN KEY (user_id) REFERENCES user (id) ON DELETE CASCADE ON UPDATE CASCADE,
CONSTRAINT like_video_fk FOREIGN KEY (video_id) REFERENCES video (id id int(11) NOT NULL AUTO_INCREMENT,
username varchar(255) NOT NULL,

PRIMARY KEY (id)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;

    Table vidéo
      Deuxièmement, vous devez créer une table vidéo pour stocker les informations de base de la vidéo , tels que l'identifiant de la vidéo, le titre de la vidéo, etc.

    1. CREATE TABLE video (
    2. id int(11) NON NULL AUTO_INCREMENT,
      title varchar(255) NON NULL,
    3. CLÉ PRIMAIRE (id)
    4. ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
      1. Like relation table
      2. Ensuite, créez une table de relation J'aime pour stocker les commentaires de l'utilisateur sur la vidéo J'aime relation. Chaque enregistrement représente une opération similaire à celle d'un utilisateur sur une vidéo. Cette table doit contenir deux clés étrangères : l'ID utilisateur et l'ID vidéo.
      3. CREATE TABLE like_relation (
        id int(11) NOT NULL AUTO_INCREMENT,
      4. user_id int(11) NOT NULL,
      video_id int(11) NON NULL,

      CLÉ PRIMAIRE (id),
      CLÉ UNIQUE user_video_unique (user_id,video_id),

      CONTRAINTE like_user_fk CLÉ ÉTRANGÈRE (user_id) RÉFÉRENCES user (id) ON SUPPRIMER LA CASCADE SUR LA MISE À JOUR DE LA CASCADE,🎜 CONTRAINTE like_video_fk CLÉ ÉTRANGÈRE (video_id) RÉFÉRENCES video (id) SUR LA SUPPRESSION DE LA CASCADE ON UPDATE CASCADE🎜) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;🎜🎜Exemples de code🎜Voici quelques instructions SQL couramment utilisées pour implémenter la fonction de type vidéo. 🎜🎜🎜Comptez le nombre de likes sur une vidéo🎜SELECT COUNT(*) FROM like_relation WHERE video_id = 1;🎜🎜Demandez si un utilisateur aime une vidéo🎜SELECT COUNT(*) FROM like_relation WHERE user_id = 1 AND video_id = 1; 🎜 🎜Requête des vidéos aimées par les utilisateurs🎜SELECT video_id FROM like_relation WHERE user_id = 1;🎜🎜L'utilisateur aime les vidéos🎜INSERT INTO like_relation (user_id, video_id) VALUES (1, 1);🎜🎜L'utilisateur annule les likes des vidéos🎜DELETE FROM like_relation WHERE user_id = 1 AND video_id = 1;🎜🎜🎜Résumé🎜Concevoir une structure de table MySQL efficace pour implémenter la fonction de type vidéo nécessite de prendre en compte la conception de la table utilisateur, de la table vidéo et de la table de relations similaires, ainsi que de certaines instructions SQL courantes Like. -opérations liées. Grâce à une conception raisonnable de la structure des tables et à des instructions de requête optimisées, les performances et l'efficacité de la fonction similaire peuvent être améliorées. 🎜

    Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

    Déclaration:
    Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn