CREATE TABLE reply (
cidx INT AUTO_INCREMENT PRIMARY KEY, -- 댓글 고유 번호
midx INT NOT NULL, -- 회원 ID
bidx INT NOT NULL, -- 게시글 ID
ccontents TEXT NOT NULL, -- 댓글 내용
cwriter VARCHAR(50) NOT NULL, -- 댓글 작성자 이름
cip VARCHAR(45) NOT NULL, -- 작성자 IP
writeday DATETIME DEFAULT CURRENT_TIMESTAMP, -- 작성일
delyn CHAR(1) DEFAULT 'N' -- 삭제 여부 ('N' 또는 'Y')
);
애초에 테이블 생성할 때 외래키 연결하고 싶다면 이렇게 넣어라
FOREIGN KEY (midx) REFERENCES member(midx), -- 회원 테이블과 연결
FOREIGN KEY (bidx) REFERENCES board(bidx) -- 게시글 테이블과 연결
외래 키 제약 조건을 추가하려면 ALTER TABLE 구문을 사용하여 외래 키를 추가합니다. 이 예시에서는 midx와 bidx 컬럼에 대한 외래 키를 추가합니다:
-- 회원 테이블과 외래 키 연결 (midx)
ALTER TABLE reply
ADD CONSTRAINT fk_reply_member
FOREIGN KEY (midx) REFERENCES member(midx);
-- 게시글 테이블과 외래 키 연결 (bidx)
ALTER TABLE reply
ADD CONSTRAINT fk_reply_board
FOREIGN KEY (bidx) REFERENCES board(bidx);
댓글이 수정될 수 있으므로 수정 시간을 기록하는 컬럼을 추가하는 것이 유용할 수 있습니다. 댓글을 수정한 시간을 추적하면, 댓글의 변화를 관리할 수 있습니다.
modifyday DATETIME DEFAULT NULL -- 댓글 수정 시간
수정 시간이 없다면 댓글이 수정된 적이 있는지 알 수 없게 되기 때문에, 이 컬럼을 추가하는 것이 좋습니다.
댓글 시스템이 대댓글을 지원하는 경우, 부모 댓글 ID를 추가하여 대댓글 구조를 만들 수 있습니다. 이를 통해 한 댓글에 대한 여러 대댓글을 계층적으로 관리할 수 있습니다.
parent_cidx INT DEFAULT NULL -- 상위 댓글의 cidx (NULL이면 일반 댓글)
이 컬럼은 댓글이 대댓글인 경우, 그 댓글이 참조하는 부모 댓글의 cidx 값을 저장합니다. 이 컬럼을 통해 댓글과 대댓글의 관계를 명확히 할 수 있습니다.
viewcnt나 recom, filename 같은거 컬럼명 중복되면 안되겠지 ?
CREATE TABLE monthly_bakery (
mbidx INT AUTO_INCREMENT PRIMARY KEY, -- 게시물 고유 ID
msubject VARCHAR(255) NOT NULL, -- 제목
mcontents TEXT NOT NULL, -- 내용
filename VARCHAR(255), -- 파일명 (이미지나 첨부파일)
writeday DATETIME DEFAULT CURRENT_TIMESTAMP, -- 작성일 (현재 시간 자동 입력)
viewcnt INT DEFAULT 0, -- 조회수 (기본값 0)
delyn CHAR(1) DEFAULT 'N', -- 삭제 여부 (Y: 삭제, N: 정상)
ip VARCHAR(45), -- IP 주소
FOREIGN KEY (midx) REFERENCES members(midx) -- 관리자만 글쓰기가 가능하므로 회원 테이블과 연결
);
관리자가 특정 게시물을 숨길 수 있도록 "노출 상태"를 제어할 수 있는 컬럼을 추가할 수 있다. 관리자가 검토 후 게시물을 잠시 숨기거나, 비공개로 설정할 수 있다.
is_visible CHAR(1) DEFAULT 'Y', -- 'Y'는 공개, 'N'은 비공개
게시물에 대한 "추천수"를 기록할 수 있는 컬럼을 추가하여, 사용자가 해당 게시물에 추천(좋아요 등)을 할 수 있도록 할 수 있다.
like INT DEFAULT 0, -- 좋아요