비디오와 같은 기능을 구현하기 위해 효율적인 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?
Background
현대 소셜 미디어 플랫폼에서 좋아요는 사용자가 좋아하는 콘텐츠에 대한 승인과 지지를 표시하는 일반적인 방법입니다. 동영상 플랫폼의 경우 동영상 같은 기능을 구현하는 것이 매우 중요합니다. 이 기사에서는 기능과 같은 비디오를 구현하기 위해 효율적인 MySQL 테이블 구조를 설계하는 방법을 소개하고 몇 가지 코드 예제를 제공합니다.
Design Ideas
MySQL 테이블 구조를 설계할 때 사용자, 동영상 및 좋아요 간의 관계 저장 방법, 좋아요 수 쿼리, 사용자가 좋아하는지 쿼리, 사용자가 좋아하는 비디오 쿼리 등의 측면을 고려해야 합니다. 사용자가 좋아요를 누른 것 등
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) NOT NULL AUTO_INCREMENT,title
varchar(255) NOT NULL,id
)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
),
like_user_fk
FOREIGN KEY (user_id
) REFERENCES user
(id
) ON CASCADE 업데이트 시 CASCADE 삭제,🎜 CONSTRAINT like_video_fk
FOREIGN KEY (video_id
) REFERENCES video
(id
) ON DELETE CASCADE ON UPDATE CASCADE🎜) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;🎜🎜코드 예제🎜 다음은 비디오 유사 함수를 구현하기 위해 일반적으로 사용되는 SQL 문입니다. 🎜🎜🎜동영상의 좋아요 수를 셉니다🎜SELECT COUNT(*) FROM like_relation WHERE video_id = 1;🎜🎜사용자가 동영상을 좋아하는지 쿼리🎜SELECT COUNT(*) FROM like_relation WHERE user_id = 1 AND video_id = 1; 🎜 🎜사용자가 좋아한 동영상 쿼리🎜like_relation에서 video_id 선택 WHERE user_id = 1;🎜🎜사용자가 동영상을 좋아합니다🎜INSERT INTO like_relation (user_id, video_id) VALUES (1, 1);🎜🎜사용자가 동영상 좋아요를 취소합니다🎜like_relation에서 삭제합니다 WHERE user_id = 1 AND video_id = 1;🎜🎜🎜요약🎜 비디오 유사 기능을 구현하기 위해 효율적인 MySQL 테이블 구조를 설계하려면 사용자 테이블, 비디오 테이블, 유사 관계 테이블 및 일부 일반적인 SQL 문 설계를 고려해야 합니다. 관련 작업. 합리적인 테이블 구조 설계와 최적화된 쿼리문을 통해 유사 기능의 성능과 효율성을 향상시킬 수 있습니다. 🎜위 내용은 비디오와 같은 기능을 구현하기 위해 효율적인 MySQL 테이블 구조를 설계하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!