Giter Site home page Giter Site logo

Comments (3)

argon1025 avatar argon1025 commented on June 20, 2024

ERD

image
ERD 작성

from harmony-serverless-backend.

argon1025 avatar argon1025 commented on June 20, 2024

AQueryTool을 사용한 데이터베이스 작성

image

from harmony-serverless-backend.

argon1025 avatar argon1025 commented on June 20, 2024

제약조건 수정후 최종 SQL

use harmony;
-- Jobs Table
CREATE TABLE Jobs
(
    `id`       INT UNSIGNED    NOT NULL    AUTO_INCREMENT COMMENT '태그 기본키', 
    `jobName`  VARCHAR(15)     NOT NULL    COMMENT '직업 이름', 
    PRIMARY KEY (id)
);

-- Jobs Table COMMENT
ALTER TABLE Jobs COMMENT '직업 태그 리스트';


-- Accounts Table
CREATE TABLE Accounts
(
    `id`        INT UNSIGNED    NOT NULL    AUTO_INCREMENT COMMENT '기본키', 
    `blogLink`  VARCHAR(100)    NULL        COMMENT '블로그 링크', 
    `jobTag`    INT UNSIGNED    NOT NULL    COMMENT '직업 태그', 
    PRIMARY KEY (id)
);

-- Accounts Table COMMENT
ALTER TABLE Accounts COMMENT '사용자 정보';

-- Accounts Table rule
-- 참조하는 테이블에 데이터가 남아 있으면, 참조되는 테이블의 데이터를 삭제할 수 없습니다.
-- 참조되는 테이블에서 데이터를 수정하면, 참조하는 테이블에서도 수정이 같이 이루어집니다.
ALTER TABLE Accounts
    ADD CONSTRAINT FK_Accounts_jobTag_is_Jobs_id FOREIGN KEY (jobTag)
        REFERENCES Jobs (id) ON DELETE RESTRICT ON UPDATE CASCADE;


-- StateTags Table
CREATE TABLE StateTags
(
    `id`       INT UNSIGNED    NOT NULL    AUTO_INCREMENT COMMENT '기본키', 
    `content`  VARCHAR(15)     NOT NULL    COMMENT '상태명', 
    PRIMARY KEY (id)
);

-- StateTags Table COMMENT
ALTER TABLE StateTags COMMENT '프로젝트 상태 태그';


-- Projects Table
CREATE TABLE Projects
(
    `id`         INT UNSIGNED    NOT NULL    AUTO_INCREMENT COMMENT '기본키', 
    `managerID`  INT UNSIGNED    NOT NULL    COMMENT '프로젝트 매니저 id', 
    `title`      VARCHAR(45)     NOT NULL    COMMENT '프로젝트 이름', 
    `content`    MEDIUMTEXT      NOT NULL    COMMENT '프로젝트 내용', 
    `date`       DATE            NOT NULL    COMMENT '프로젝트 등록일', 
    `delete`     VARCHAR(10)     NOT NULL    COMMENT '프로젝트 삭제유무', 
    `stateID`    INT UNSIGNED    NOT NULL    COMMENT '프로젝트 상태', 
    PRIMARY KEY (id)
);

-- Projects Table COMMENT
ALTER TABLE Projects COMMENT '프로젝트';

-- Accounts Table rule
-- 참조하는 테이블에 데이터가 남아 있으면, 참조되는 테이블의 데이터를 삭제할 수 없습니다.
-- 참조되는 테이블에서 데이터를 수정하면, 참조하는 테이블에서도 수정이 같이 이루어집니다.
ALTER TABLE Projects
    ADD CONSTRAINT FK_Projects_managerID_is_Accounts_id FOREIGN KEY (managerID)
        REFERENCES Accounts (id) ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE Projects
    ADD CONSTRAINT FK_Projects_stateID_is_StateTags_id FOREIGN KEY (stateID)
        REFERENCES StateTags (id) ON DELETE RESTRICT ON UPDATE CASCADE;


-- TechStacks Table
CREATE TABLE TechStacks
(
    `id`        INT UNSIGNED    NOT NULL    AUTO_INCREMENT COMMENT '기본키', 
    `userID`    INT UNSIGNED    NOT NULL    COMMENT '유저id', 
    `techName`  VARCHAR(10)     NOT NULL    COMMENT 'techName', 
    PRIMARY KEY (id)
);

-- TechStacks Table COMMENT
ALTER TABLE TechStacks COMMENT '유저 기술스택';

-- ALTER TABLE TechStacks rule
-- 참조하는 테이블에 데이터가 남아 있으면, 참조되는 테이블의 데이터를 삭제할 수 없습니다.
-- 참조되는 테이블에서 데이터를 수정하면, 참조하는 테이블에서도 수정이 같이 이루어집니다.
ALTER TABLE TechStacks
    ADD CONSTRAINT FK_TechStacks_userID_is_Accounts_id FOREIGN KEY (userID)
        REFERENCES Accounts (id) ON DELETE RESTRICT ON UPDATE CASCADE;


-- ProjectMembers Table
CREATE TABLE ProjectMembers
(
    `id`         INT UNSIGNED    NOT NULL    AUTO_INCREMENT COMMENT '기본키', 
    `projectID`  INT UNSIGNED    NOT NULL    COMMENT '프로젝트 ID', 
    `userID`     INT UNSIGNED    NOT NULL    COMMENT '유저 ID', 
    `approval`   VARCHAR(10)     NOT NULL    DEFAULT 'false'    COMMENT '유저 상태', 
    PRIMARY KEY (id)
);

-- ProjectMembers Table COMMENT
ALTER TABLE ProjectMembers COMMENT '프로젝트 멤버 구성';

-- ProjectMembers Table rule
-- 참조하는 테이블에 데이터가 남아 있으면, 참조되는 테이블의 데이터를 삭제할 수 없습니다.
-- 참조되는 테이블에서 데이터를 수정하면, 참조하는 테이블에서도 수정이 같이 이루어집니다.
ALTER TABLE ProjectMembers
    ADD CONSTRAINT FK_ProjectMembers_userID_is_Accounts_id FOREIGN KEY (userID)
        REFERENCES Accounts (id) ON DELETE RESTRICT ON UPDATE CASCADE;

ALTER TABLE ProjectMembers
    ADD CONSTRAINT FK_ProjectMembers_projectID_is_Projects_id FOREIGN KEY (projectID)
        REFERENCES Projects (id) ON DELETE RESTRICT ON UPDATE CASCADE;

from harmony-serverless-backend.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.