DBMS Day16 BBS, SCHEMA(site)

김지원·2022년 6월 30일
0

DBMS

목록 보기
16/17

BBS(Bulletin Board System) & User System

: 게시판 & 사용자 시스템

  • 무결성과 효율성을 지킨다.
    사용자가 게시글을 쓴다. 게시글이 사용자를 쓰진 않는다.
    따라서 게시글을 포함한 Bbs시스템이 User시스템에 의존적이다.

탈퇴되는 회원을 DELETE하면 안된다.
법원이나 경찰에 제출할 증거가 사라지기 때문이다.

-> 스키마 생성 / user_statuses 테이블 생성 및 INSERT

: 사용자의 상태를 나타낸다.

-> 통신사 테이블 생성 및 INSERT

통신사와 사용자상태는 사용자가 원한다고 해서 무한정으로 정보가 나올 수 없다. 성별 또한 그렇다.

-> user_genders 테이블 생성 및 INSERT

-> users 테이블 생성

: 사용자의 정보를 담는다.

CREATE TABLE `site`.`users`
(
    `index`                  INT UNSIGNED     NOT NULL AUTO_INCREMENT,
    `email`                  VARCHAR(50)      NOT NULL,
    `password`               VARCHAR(128)     NOT NULL,
    `created_at`             DATETIME         NOT NULL DEFAULT NOW(),
    `updated_at`             DATETIME         NOT NULL DEFAULT NOW(),
    `status_index`           TINYINT UNSIGNED NOT NULL, -- 사용자의 상태
    `nickname`               VARCHAR(10)      NOT NULL,
    `name`                   VARCHAR(10)      NOT NULL,
    `birth`                  DATE             NOT NULL,
    `gender_index`           TINYINT UNSIGNED  NOT NULL,
    `contact_provider_index` TINYINT UNSIGNED NOT NULL COMMENT '연락처 통신사',
    `contact_first`          VARCHAR(4)       NOT NULL,
    `contact_second`         VARCHAR(4)       NOT NULL,
    `contact_third`          VARCHAR(4)       NOT NULL,
    `address_postal`         VARCHAR(5)       NOT NULL COMMENT '주소 우편번호',
    `address_primary`        VARCHAR(100)     NOT NULL COMMENT '주소 기본',
    `address_secondary`      VARCHAR(100)     NOT NULL COMMENT '주소 상세',
    CONSTRAINT PRIMARY KEY (`index`),
    CONSTRAINT UNIQUE (`email`),
    CONSTRAINT UNIQUE (`nickname`),
    CONSTRAINT UNIQUE (`contact_first`, `contact_second`, `contact_third`),
    CONSTRAINT FOREIGN KEY (`status_index`) REFERENCES `site`.`user_statuses` (`index`)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT FOREIGN KEY (`gender_index`) REFERENCES `site`.`user_genders` (`index`)
        ON DELETE CASCADE
        ON UPDATE CASCADE,
    CONSTRAINT FOREIGN KEY (`contact_provider_index`) REFERENCES `site`.`user_contact_providers` (`index`)
        ON DELETE CASCADE
        ON UPDATE CASCADE
);

오류터졌을때는 near의 뒤에것을 확인해보면 된다.

-> INSERT

-> SELECT

profile
Software Developer : -)

0개의 댓글