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 ?
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.
CREATE TABLE user
(user
(
id
int(11) NOT NULL AUTO_INCREMENT,
username
varchar(255) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
CREATE TABLE video
(
id
int(11) NOT NULL AUTO_INCREMENT,
title
varchar(255) NOT NULL,
PRIMARY KEY (id
)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
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,
id
)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
video
(id
int(11) NON NULL AUTO_INCREMENT,title
varchar(255) NON NULL,id
)like_relation
(id
int(11) NOT NULL AUTO_INCREMENT,user_id
int(11) NOT NULL,video_id
int(11) NON NULL, CLÉ PRIMAIRE (id
),
CLÉ UNIQUE user_video_unique
(user_id
,video_id
),
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!