반응형
블로그형 홈페이지 하나를 포트폴리오 용으로 개발하기로 결정했다.
프론트는 React.js / 백엔드는 Nest.js / 타입스크립트 기반
테이블 구성
테이블명 | 설명 |
users | 사용자 정보 저장 |
posts | 글 게시판에 등록된 글 정보 저장 |
artworks | 로드비 게시판에 올라온 그림 정보 저장 |
comments | 게시판 및 그림 게시물에 대한 댓글 저장 |
admin_logs | 관리자 로그 저장 (사용자 관리, 삭제 기록 등) |
테이블 상세
변동 가능성 있음
users 테이블
CREATE TABLE users (
id INT AUTO_INCREMENT PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
password VARCHAR(255) NOT NULL,
profile_image_url VARCHAR(255),
role ENUM('user', 'admin') DEFAULT 'user', -- 사용자 역할 (일반/관리자)
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
posts 테이블
CREATE TABLE posts (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL, -- 작성자 ID
title VARCHAR(100) NOT NULL,
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
);
artworks 테이블
CREATE TABLE artworks (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL, -- 작성자 ID
title VARCHAR(100) NOT NULL,
description TEXT,
image_url VARCHAR(255) NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE
);
comment 테이블
CREATE TABLE comments (
id INT AUTO_INCREMENT PRIMARY KEY,
user_id INT NOT NULL, -- 댓글 작성자
post_id INT, -- 글 게시판 댓글일 경우
artwork_id INT, -- 그림 게시판 댓글일 경우
content TEXT NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
FOREIGN KEY (user_id) REFERENCES users (id) ON DELETE CASCADE,
FOREIGN KEY (post_id) REFERENCES posts (id) ON DELETE CASCADE,
FOREIGN KEY (artwork_id) REFERENCES artworks (id) ON DELETE CASCADE
);
반응형
'INFO > 웹 개발' 카테고리의 다른 글
[블홈] 테스트 DB 생성하기 (2) | 2024.11.18 |
---|