npm i -g sequelize-cli
sequelize
: sequelize 라는 명령어를 사용하기 위함
ERD (=테이블간의 관계를 그리는 다이어그램) 구조 잡기
일대다 관계 : 하나의 유저는 여러개의 포스트를 갖고 있다 등...
다대다 관계 : 좋아요, 리트윗, 팔로워, 해쉬태그와 같이 서로에게 관계를 미치는 테이블 구조
코드 표현은 아래와 같다.
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;
};
에러 unhandled rejection sequelizeconnectionerror: unknown database
=>