공지사항 정보를 저장하는 테이블은 웹사이트나 조직 내에서 중요한 소식, 업데이트, 이벤트 등을 사용자나 직원에게 알리는 데 중요합니다. 이 테이블은 공지사항 ID, 제목, 내용, 게시 날짜, 수정 날짜, 게시자 ID 등의 정보를 포함할 수 있습니다. 다음은 공지사항 정보를 저장하기 위한 테이블 생성을 위한 SQL 쿼리문 예제와 각각의 설명입니다.
1. 기본 공지사항 테이블 생성
CREATE TABLE announcements (
announcement_id INT AUTO_INCREMENT PRIMARY KEY,
title VARCHAR(200),
content TEXT,
post_date TIMESTAMP,
last_modified TIMESTAMP,
posted_by INT,
FOREIGN KEY (posted_by) REFERENCES users(user_id)
);
설명: 공지사항의 제목, 내용, 게시 날짜, 마지막 수정 날짜, 게시자 ID 등을 저장합니다.
2. 사용자 정보 테이블 생성
CREATE TABLE users (
user_id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50),
email VARCHAR(100)
);
설명: 사용자 ID, 사용자명, 이메일 등 사용자의 기본 정보를 저장합니다.
3. 공지사항 태그 테이블 생성
CREATE TABLE announcement_tags (
tag_id INT AUTO_INCREMENT PRIMARY KEY,
tag_name VARCHAR(50)
);
설명: 각 태그의 ID와 태그명을 저장합니다.
4. 공지-태그 관계 테이블 생성
CREATE TABLE announcement_tag_relations (
announcement_id INT,
tag_id INT,
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id),
FOREIGN KEY (tag_id) REFERENCES announcement_tags(tag_id)
);
설명: 각 공지사항과 연관된 태그의 관계를 저장합니다.
5. 공지사항 댓글 테이블 생성
CREATE TABLE announcement_comments (
comment_id INT AUTO_INCREMENT PRIMARY KEY,
announcement_id INT,
author_id INT,
comment TEXT,
comment_date TIMESTAMP,
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id),
FOREIGN KEY (author_id) REFERENCES users(user_id)
);
설명: 댓글 ID, 공지사항 ID, 작성자 ID, 댓글 내용, 댓글 날짜 등을 저장합니다.
6.공지사항 첨부 파일 테이블 생성
CREATE TABLE announcement_attachments (
attachment_id INT AUTO_INCREMENT PRIMARY KEY,
announcement_id INT,
file_url TEXT,
upload_time TIMESTAMP,
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id)
);
설명: 첨부 파일의 URL과 업로드 시간을 저장합니다.
7. 공지사항 수정 기록 테이블 생성
CREATE TABLE announcement_edits (
edit_id INT AUTO_INCREMENT PRIMARY KEY,
announcement_id INT,
editor_id INT,
edit_date TIMESTAMP,
edit_description TEXT,
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id),
FOREIGN KEY (editor_id) REFERENCES users(user_id)
);
설명: 수정 기록 ID, 공지사항 ID, 수정한 사용자 ID, 수정 날짜, 수정 내용 등을 저장합니다.
8. 공지사항 조회수 테이블 생성
CREATE TABLE announcement_views (
view_id INT AUTO_INCREMENT PRIMARY KEY,
announcement_id INT,
view_date TIMESTAMP,
viewer_id INT,
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id),
FOREIGN KEY (viewer_id) REFERENCES users(user_id)
);
설명: 조회수 ID, 공지사항 ID, 조회 날짜, 조회자 ID 등을 저장합니다.
9. 공지사항 공유 기록 테이블 생성
CREATE TABLE announcement_shares (
share_id INT AUTO_INCREMENT PRIMARY KEY,
announcement_id INT,
user_id INT,
share_date TIMESTAMP,
share_platform VARCHAR(100),
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id),
FOREIGN KEY (user_id) REFERENCES users(user_id)
);
설명: 공유 ID, 공지사항 ID, 공유한 사용자 ID, 공유 날짜, 공유된 플랫폼 등을 저장합니다.
10. 공지사항 카테고리 테이블 생성
CREATE TABLE announcement_categories (
category_id INT AUTO_INCREMENT PRIMARY KEY,
announcement_id INT,
category_name VARCHAR(100),
FOREIGN KEY (announcement_id) REFERENCES announcements(announcement_id)
);
설명: 카테고리 ID, 공지사항 ID, 카테고리명 등을 저장합니다.
관련 전문용어 설명
CREATE TABLE: 새로운 테이블을 생성하는 SQL 명령어입니다.
INT, VARCHAR, TIMESTAMP, TEXT: 데이터 유형을 나타냅니다.
AUTO_INCREMENT: 자동으로 숫자를 증가시키는 속성입니다.
PRIMARY KEY: 각 행을 고유하게 식별하는 주 키입니다.
FOREIGN KEY: 다른 테이블의 주 키를 참조하는 외래 키입니다.
'SQL' 카테고리의 다른 글
음식 주문 테이블 생성: 음식 주문 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
---|---|
호텔 예약 테이블 생성: 호텔 예약 정보를 저장하기 위한 테이블을 생성합니다. (1) | 2024.01.02 |
블로그 포스트 테이블 생성: 블로그 포스트 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
채팅 메시지 테이블 생성: 채팅 메시지 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |
주식 거래 테이블 생성: 주식 거래 정보를 저장하기 위한 테이블을 생성합니다. (0) | 2024.01.01 |