블로그 포스트 정보를 저장하는 테이블은 블로그 콘텐츠를 관리하고 사용자와의 상호작용을 기록하는 데 중요합니다. 이 테이블은 포스트 ID, 작성자 ID, 제목, 내용, 게시 날짜, 수정 날짜, 태그, 댓글 수, 좋아요 수 등의 정보를 포함할 수 있습니다. 다음은 블로그 포스트 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 블로그 포스트 테이블 생성
CREATE TABLE blog_posts (
post_id INT AUTO_INCREMENT PRIMARY KEY,
author_id INT,
title VARCHAR(200),
content TEXT,
post_date TIMESTAMP,
last_modified TIMESTAMP,
tag_list TEXT,
comment_count INT,
like_count INT,
FOREIGN KEY (author_id) REFERENCES users(user_id)
);
설명: 포스트 ID, 작성자 ID, 제목, 내용, 게시 날짜, 마지막 수정 날짜, 태그 리스트, 댓글 수, 좋아요 수 등을 저장합니다.
2. 사용자 정보 테이블 생성
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100),
registration_date TIMESTAMP
);
설명: 사용자 ID, 사용자명, 이메일, 등록 날짜 등 사용자의 기본 정보를 저장합니다.
3. 블로그 태그 테이블 생성
CREATE TABLE blog_tags (
tag_id INT AUTO_INCREMENT PRIMARY KEY,
tag_name VARCHAR(50)
);
설명: 각 태그의 ID와 태그명을 저장합니다.
4. 포스트-태그 관계 테이블 생성
CREATE TABLE post_tags (
post_id INT,
tag_id INT,
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id),
FOREIGN KEY (tag_id) REFERENCES blog_tags(tag_id)
);
설명: 각 포스트와 연관된 태그의 관계를 저장합니다.
5. 블로그 댓글 테이블 생성
CREATE TABLE blog_comments (
comment_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
author_id INT,
comment TEXT,
comment_date TIMESTAMP,
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id),
FOREIGN KEY (author_id) REFERENCES users(user_id)
);
설명: 댓글 ID, 포스트 ID, 작성자 ID, 댓글 내용, 댓글 날짜 등을 저장합니다.
6. 블로그 포스트 좋아요 테이블 생성
CREATE TABLE post_likes (
like_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
user_id INT,
like_date TIMESTAMP,
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 좋아요 ID, 포스트 ID, 사용자 ID, 좋아요 날짜 등을 저장합니다.
7. 블로그 포스트 조회수 테이블 생성
CREATE TABLE post_views (
view_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
view_date TIMESTAMP,
viewer_id INT,
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id),
FOREIGN KEY (viewer_id) REFERENCES users(user_id)
);
설명: 조회수 ID, 포스트 ID, 조회 날짜, 조회자 ID 등을 저장합니다.
8. 블로그 포스트 공유 테이블 생성
CREATE TABLE post_shares (
share_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
user_id INT,
share_date TIMESTAMP,
share_platform VARCHAR(100),
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 공유 ID, 포스트 ID, 공유한 사용자 ID, 공유 날짜, 공유된 플랫폼 등을 저장합니다.
9. 블로그 포스트 수정 기록 테이블 생성
CREATE TABLE post_edits (
edit_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
editor_id INT,
edit_date TIMESTAMP,
edit_description TEXT,
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id),
FOREIGN KEY (editor_id) REFERENCES users(user_id)
);
설명: 수정 기록 ID, 포스트 ID, 수정한 사용자 ID, 수정 날짜, 수정 내용 등을 저장합니다.
10.블로그 포스트 카테고리 테이블 생성
CREATE TABLE post_categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
category_name VARCHAR(100),
FOREIGN KEY (post_id) REFERENCES blog_posts(post_id)
);
설명: 카테고리 ID, 포스트 ID, 카테고리명 등을 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, TIMESTAMP, TEXT, BOOLEAN: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
호텔 예약 테이블 생성: 호텔 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
---|---|
공지사항 테이블 생성: 웹사이트 공지사항 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
채팅 메시지 테이블 생성: 채팅 메시지 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
주식 거래 테이블 생성: 주식 거래 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
제품 레시피 테이블 생성: 제품 레시피 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.01 |