본문 바로가기

SQL

공지사항 테이블 생성: 웹사이트 공지사항 정보를 저장하기 위한 테이블을 생성합니다.

반응형

공지사항 정보를 저장하는 테이블은 웹사이트나 조직 내에서 중요한 소식, 업데이트, 이벤트 등을 사용자나 직원에게 알리는 데 중요합니다. 이 테이블은 공지사항 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: 다른 테이블의 주 키를 참조하는 외래 키입니다.

반응형