포럼 게시글 정보를 저장하는 테이블은 커뮤니티 내에서 사용자들의 의견, 정보, 질문 등을 관리하고 소통을 용이하게 하는 데 중요합니다. 이 테이블은 게시글 ID, 작성자 ID, 제목, 내용, 게시일, 수정일, 조회수, 카테고리 등의 정보를 포함할 수 있습니다. 다음은 포럼 게시글 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 포럼 게시글 테이블 생성
CREATE TABLE forum_posts (
post_id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT,
title VARCHAR(200),
content TEXT,
post_date TIMESTAMP,
last_modified TIMESTAMP,
views INT,
category_id INT,
FOREIGN KEY (user_id) REFERENCES users(user_id),
FOREIGN KEY (category_id) REFERENCES categories(category_id)
);
설명: 게시글의 제목, 내용, 작성일, 최종 수정일, 조회수, 카테고리를 저장합니다.
2. 게시글 카테고리 테이블 생성
CREATE TABLE categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
name VARCHAR(100),
description TEXT
);
설명: 각 카테고리의 이름과 설명을 저장합니다.
3. 게시글 댓글 테이블 생성
CREATE TABLE post_comments (
comment_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
user_id INT,
content TEXT,
comment_date TIMESTAMP,
FOREIGN KEY (post_id) REFERENCES forum_posts(post_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 각 게시글에 달린 댓글 내용과 작성일을 저장합니다.
4. 게시글 첨부 파일 테이블 생성
CREATE TABLE post_attachments (
attachment_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
file_url TEXT,
upload_date TIMESTAMP,
FOREIGN KEY (post_id) REFERENCES forum_posts(post_id)
);
설명: 게시글에 첨부된 파일의 URL과 업로드 날짜를 저장합니다.
5. 게시글 태그 테이블 생성
CREATE TABLE post_tags (
tag_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
tag_name VARCHAR(50),
FOREIGN KEY (post_id) REFERENCES forum_posts(post_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 forum_posts(post_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 사용자가 게시글에 좋아요를 누른 기록과 날짜를 저장합니다.
7. 게시글 신고 기록 테이블 생성
CREATE TABLE post_reports (
report_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
reported_by INT,
report_reason TEXT,
report_date TIMESTAMP,
FOREIGN KEY (post_id) REFERENCES forum_posts(post_id),
FOREIGN KEY (reported_by) REFERENCES users(user_id)
);
설명: 게시글에 대한 신고 내용, 신고자, 신고 날짜를 저장합니다.
8. 게시글 조회 기록 테이블 생성
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 forum_posts(post_id),
FOREIGN KEY (viewer_id) REFERENCES users(user_id)
);
설명: 게시글의 조회자와 조회 날짜를 기록합니다.
9. 게시글 추천 기록 테이블 생성
CREATE TABLE post_recommendations (
recommendation_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
recommended_by INT,
recommendation_date TIMESTAMP,
FOREIGN KEY (post_id) REFERENCES forum_posts(post_id),
FOREIGN KEY (recommended_by) REFERENCES users(user_id)
);
설명: 게시글을 추천한 사용자와 추천 날짜를 저장합니다.
10. 게시글 공유 기록 테이블 생성
CREATE TABLE post_shares (
share_id INT AUTO_INCREMENT PRIMARY KEY,
post_id INT,
shared_by INT,
share_date TIMESTAMP,
share_platform VARCHAR(100),
FOREIGN KEY (post_id) REFERENCES forum_posts(post_id),
FOREIGN KEY (shared_by) REFERENCES users(user_id)
);
설명: 게시글을 공유한 사용자, 공유 날짜, 공유 플랫폼을 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, TIMESTAMP, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
고객 리워드 테이블 생성: 고객 리워드 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
---|---|
영화 상영 일정 테이블 생성: 영화 상영 일정 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
쿠폰 테이블 생성: 할인 쿠폰 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
도서 대출 테이블 생성: 도서 대출 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
학생 성적 테이블 생성: 학생 성적 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |