ショッピングモールの作成-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',
})
}
}
ショッピングバスケットモデル.バスケット製品(ショッピングバスケットに入った商品)、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',
})
}
}
これはレビュー(商品レビュー)モデルです.格付け・内容(商品コメント)欄が追加されました.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',
})
}
}
ショッピングモールを使ってユーザー情報を格納するパターンです.メール(電子メール)、nick(ニックネーム)、パスワード(パスワード)、auth(権限)バーが追加されました.authの値によって管理者または一般ユーザーに区別できます.
また,モデル間の関係は次の文章で整理する.
Reference
この問題について(ショッピングモールの作成-DB設定), 我々は、より多くの情報をここで見つけました https://velog.io/@jaehyeon2/쇼핑몰-만들기-DB-세팅テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol