쇼핑몰 만들기 - DB 세팅
Basket model
const Sequelize=require('sequelize');
module.exports=class Basket extends Sequelzie.Model{
static init(sequelize){
return super.init({
basketproduct:{
type:Sequelize.STRING(50),
allowNull:false,
},
ordercount:{
type:Sequelize.INTEGER,
allowNull:false,
}
},{
sequelize,
timestamps:true,
underscored:false,
modelName:'Basket',
tableName:'baskets',
charset:'utfmb4',
collate:'utfmb4_general_ci',
})
}
}
장바구니 모델이다. basketproduct(장바구니에 담은 상품), ordercount(담은 수량)컬럼을 추가하였다..
Buy model
const Sequelize=require('sequelize');
module.exports=class Buy extends Sequelize.Model{
static init(sequelize){
return super.init({
buyproduct:{
type:Sequelize.STRING(50),
allowNull:false,
},
buycount:{
type:Sequelize.INTEGER,
allowNull:false,
}
},{
sequelize,
timestamps:true,
underscored:false,
modelName:'Buy',
tableName:'buys',
charset:'utf8mb4',
collate:'utf8mb4_general_ci',
})
}
}
구매(주문)한 상품의 모델이다. buyproduct(구매한 상품), buycount(구매 수량)컬럼을 추가하였다.
Comment model
const Sequelize=require('sequelize');
module.exports=class buy extends Sequelize.Model{
static init(sequelize){
return super.init({
rating:{
type:Sequelize.INTEGER,
allowNull:false,
},
content:{
type:Sequelize.STRING(500),
allowNull:false,
}
},{
sequelize,
timestamps:true,
underscored:false,
modelName:'Comment',
tableName:'comments',
charset:'utf8',
collate:'utf8_general_ci',
})
}
}
댓글(상품평) 모델이다. rating(평점), content(상품평)컬럼을 추가하였다.
Hashtag model
const Sequelize=require('sequelize');
module.exports=class Hashtag extends Sequelize.Model{
static init(sequelize){
return super.init({
title:{
type:Sequelize.STRING(50),
allowNull:false,
unique:true,
},
},{
sequelize,
timestamps:true,
modelName:'Hashtag',
tableName:'hashtags',
charset:'utf8mb4',
collate:'utf8mb4_general_ci',
})
}
};
해시태그 모델이다. 상품을 검색할 때 상품에 등록된 해시태그를 저장하는 모델이다. title(해시태그명)컬럼만 추가하였다.
Product model
const Sequelize=require('sequelize');
module.exports=class Product extends Sequelize.Model{
static init(sequelize){
return super.init({
name:{
type:Sequelize.STRING(50),
allowNull:false,
},
img:{
type:Sequelize.STRING(300),
allowNull:false,
},
content:{
type:Sequelize.STRING(500),
allowNull:false,
},
price:{
type:Sequelize.INTEGER,
allowNull:false,
},
remaincount:{
type:Sequelize.INTEGER,
allowNull:false,
},
hashtag:{
type:Sequelize.STRING(500),
allowNull:true,
}
},{
sequelize,
timestamps:true,
underscored:false,
modelName:'Product',
tableName:'products',
charset:'utf8mb4',
collate:'utf8mb4_general_ci',
})
}
}
쇼핑몰에 등록된 상품의 정보를 저장하는 모델이다. name(상품명), img(상품 이미지 경로), content(상품 설명), price(상품 가격), remaincount(재고 수량), hashtag(해시태그)컬럼을 추가하였다.
User model
const Sequelize=require('sequelize');
module.exports=class User extends Sequelize.Model{
static init(sequelize){
return super.init({
email:{
type:Sequelize.STRING(40),
allowNull:false,
},
nick:{
type:Sequelize.STRING(50),
allowNull:false,
},
password:{
type:Sequelize.STRING(200),
allowNull:false,
},
auth:{
type:Sequelize.STRING(10),
allowNull:false,
}
},{
sequelize,
timestamps:true,
paranoid:true,
modelName:'User',
tableName:'users',
charset:'utf8',
collate:'utf8_general_ci',
})
}
}
쇼핑몰을 이용하는 사용자의 정보를 저장하는 모델이다. email(이메일), nick(닉네임), password(비밀번호), auth(권한)컬럼을 추가하였다.
auth의 값에 따라서 관리자 또는 일반유저 임을 구분할 수 있다.
추가적으로 모델 간의 관계는 다음 글에서 정리할 예정이다.
Author And Source
이 문제에 관하여(쇼핑몰 만들기 - DB 세팅), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jaehyeon2/쇼핑몰-만들기-DB-세팅저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)