19.12.21 ERD

sykim·2019년 12월 21일
0
npm i -g sequelize-cli

sequelize
: sequelize 라는 명령어를 사용하기 위함

  1. sequelize init 을 실행하면
  2. config 파일이 생성된다
  3. config 파일 수정
  4. models/index.js 수정
    (해당 설정 수정으로 인해 db(SQL문)를 자바스크립트로 제어 가능하게 한다)
  5. models / table 파일 만들기
    models/user.js
    models/post.js
    models/comment.js
    models/hash.js
    models/image.js

ERD (=테이블간의 관계를 그리는 다이어그램) 구조 잡기

image.png

일대다 관계 : 하나의 유저는 여러개의 포스트를 갖고 있다 등...
다대다 관계 : 좋아요, 리트윗, 팔로워, 해쉬태그와 같이 서로에게 관계를 미치는 테이블 구조

코드 표현은 아래와 같다.

model/user.js

module.export = (sequelize, DataTypes) => {
    const User = sequelize.define('User', {
        nickname : {
            type : DataTypes.STRING(20),
            allowNull : false,
        },
        userId : {
            type : DataTypes.STRING(20),
            allowNull : false,
            unique : true
        },
        password : {
            type : DataTypes.STRING(100),
            allowNull : false,
        },
    }, {
        charset : 'utf8',
        collate : 'utf-_general_ci',
    });

    User.associate = (db) => {
        db.User.hasMany(db.Post, { as : 'Post' }); // 사람 한 명이 여러개의 포스트를 사용할 수 있다
        db.User.hasMany(db.Comment); // 사람 한 명이 여러개의 코멘트를 사용할 수 있다
        db.User.belongsToMany(db.Post, { through : 'Like', as : 'Liked' }); // 게시글 '좋아요'
        db.User.belongsToMany(db.User, { through : 'Follow', as : 'Followers' }); // 팔로워
        db.User.belongsToMany(db.User, { through : 'Follow', as : 'Followings' }); // 팔로윙

    };
    return User;
};
profile
블로그 이전했습니다

1개의 댓글

comment-user-thumbnail
2019년 12월 21일

에러 unhandled rejection sequelizeconnectionerror: unknown database
=>

sequelize db:create
답글 달기