马海馨 8 months ago
parent 3cad6ea220
commit 11877d079d

@ -1,22 +1,50 @@
// 导出一个函数这个函数接受数据库对象db和一个回调函数callback作为参数
module.exports = function(db,callback){
// 用户模型
// 使用db.define方法定义一个模型模型名为AttributeModel
db.define("AttributeModel",{
// 定义模型的属性
attr_id : {type: 'serial', key: true}, // 自增主键
attr_name : String, // 属性名称,类型为字符串
cat_id : Number, // 分类ID类型为数字
attr_sel : ["only", "many"], // 属性选择类型,可以是"only"或"many"
// "only":输入框(唯一) "many":后台下拉列表/前台单选框
attr_write: ["manual","list"], // 属性写入方式,可以是"manual"或"list"
// "manual":手工录入 "list":从列表选择
attr_vals: String, // 属性值,类型为字符串
delete_time : Number // 删除时间,类型为数字
},{
// 定义模型的选项
table : "sp_attribute" // 指定模型对应的数据库表名为sp_attribute
/// 导出一个函数,这个函数是模块的主要接口,它接受两个参数:
// 第一个参数是数据库对象db它提供了与数据库进行交互的能力
// 第二个参数是一个回调函数callback它将在模型定义成功后被调用。
module.exports = function(db, callback) {
// 开始使用db.define方法定义一个名为"AttributeModel"的模型。
// 这个模型用于表示商品或产品的属性。
db.define("AttributeModel", {
// 以下是该模型属性的定义部分:
// attr_id属性作为主键其类型为'serial',表示这是一个自增的序列号。
// key: true表明这个属性是主键用于唯一标识每条记录。
attr_id: {type: 'serial', key: true},
// attr_name属性表示属性的名称其类型为字符串String
// 用于存储属性的描述性名称。
attr_name: String,
// cat_id属性表示分类ID其类型为数字Number
// 这个属性用于将属性与特定的商品分类关联起来。
cat_id: Number,
// attr_sel属性表示属性的选择类型其值为一个数组包含"only"和"many"。
// "only"表示该属性为唯一选择(如输入框),"many"表示该属性可以从多个选项中选择(如下拉列表或单选框)。
attr_sel: ["only", "many"],
// attr_write属性表示属性的写入方式其值为一个数组包含"manual"和"list"。
// "manual"表示属性值需要手工录入,"list"表示属性值应从预定义的列表中选择。
attr_write: ["manual", "list"],
// attr_vals属性表示属性的值其类型为字符串String
// 存储属性的实际值,可能是一个逗号分隔的字符串(对于"many"类型的属性)。
attr_vals: String,
// delete_time属性表示删除时间其类型为数字Number
// 用于逻辑删除,即不真正从数据库中删除记录,而是通过设置一个删除时间来标记记录已删除。
delete_time: Number
}, {
// 以下是该模型的选项或配置的定义部分:
// table选项指定这个模型在数据库中对应的表名。
// 在这个例子中,表名被指定为"sp_attribute",这是数据库中存储属性信息的表的名称。
table: "sp_attribute"
});
// 调用回调函数,传入无参数
// 模型定义完成。现在我们调用之前传入的回调函数callback。
// 由于模型定义操作通常不会返回任何结果(除非出现错误),因此这里我们传入一个空参数。
// 回调函数可以在此处执行一些后续的逻辑处理,如初始化数据、启动服务等。
// 但在这个例子中,回调函数可能只是被用来简单地表示模型定义过程的结束。
return callback();
}

@ -1,27 +1,44 @@
// 导出一个函数这个函数接受数据库对象db和一个回调函数callback作为参数
// 这是一个Node.js模块它导出一个函数。这个函数用于定义一个数据库模型并允许在模型定义完成后执行回调函数。
module.exports = function(db, callback) {
// 用户模型定义开始
// 使用db.define方法定义一个模型模型名为CategoryModel
// 这个模型用于操作数据库中的分类信息
// 开始定义用户模型(在这个上下文中,是分类模型)。
// 函数接受一个数据库对象db和一个回调函数callback作为参数。
// 使用db对象的define方法来定义一个名为CategoryModel的新模型。
// 这个模型用于操作数据库中的分类信息,如创建、读取、更新和删除分类。
db.define("CategoryModel", {
// 定义模型的属性
// 分类ID自增主键每次新增分类时这个ID会自动递增
cat_id : {type: 'serial', key: true},
// 分类名称,类型为字符串,用于存储分类的名称
cat_name : String,
// 父分类ID类型为数字用于表示当前分类的上级分类
cat_pid : Number,
// 分类级别,类型为数字,用于表示分类的层级关系
cat_level : Number,
// 是否已删除,类型为布尔值,用于标记该分类是否已被逻辑删除
cat_deleted: Boolean
// 定义模型的第一个属性分类IDcat_id
// 这是一个自增主键意味着每当向数据库添加新分类时这个ID都会自动递增。
// type: 'serial'指定了这是一个序列类型自增类型key: true表示这是主键。
cat_id: {type: 'serial', key: true},
// 定义模型的第二个属性分类名称cat_name
// 这是一个字符串类型,用于存储分类的名称或标题。
cat_name: String,
// 定义模型的第三个属性父分类IDcat_pid
// 这是一个数字类型,用于表示当前分类的上级分类(如果存在的话)。
// 通过这个属性,可以建立分类之间的层级关系或父子关系。
cat_pid: Number,
// 定义模型的第四个属性分类级别cat_level
// 这也是一个数字类型,用于表示分类在层级结构中的位置或深度。
// 例如顶级分类的级别可能是1其子分类的级别可能是2依此类推。
cat_level: Number,
// 定义模型的第五个属性是否已删除cat_deleted
// 这是一个布尔值类型,用于标记该分类是否已被逻辑删除(即在数据库中保留但不再显示或使用)。
// 这是一种软删除的方式,允许在不实际删除数据的情况下,从系统中移除分类。
cat_deleted: Boolean
}, {
// 定义模型的选项
// 指定模型对应的数据库表名为sp_category
// 这意味着该模型的所有数据库操作都会针对sp_category表进行
table : "sp_category"
// 定义模型的选项或配置。
// 在这个例子中只定义了一个选项table。
// 这个选项指定了模型对应的数据库表名。
// 在这个例子中,表名是"sp_category"。
// 这意味着该模型的所有数据库操作(如查询、插入、更新和删除)都会针对这个表进行。
table: "sp_category"
});
// 模型定义结束,调用回调函数,传入无参数
// 这通常表示模型已经成功定义,可以进行后续操作
// 模型定义完成。现在调用回调函数callback并传入空参数或无参数
// 这通常表示模型已经成功定义,可以进行后续操作(如查询数据库、添加数据等)。
// 回调函数可以用于执行任何需要在模型定义完成后立即执行的操作。
return callback();
}

@ -1,40 +1,46 @@
// 导出一个函数,这个函数接受两个参数:
// 第一个参数是数据库对象db用于数据库操作;
// 第二个参数是一个回调函数callback用于在操作完成后执行特定逻辑。
// 第一个参数是数据库对象db它提供了与数据库交互的API用于执行数据库操作;
// 第二个参数是一个回调函数callback它在模型定义完成后被调用,用于执行一些后续逻辑。
module.exports = function(db, callback) {
// 开始定义用户模型,这里的用户模型实际上是一个商品属性模型。
// 使用db.define方法该方法用于在数据库中定义一个新的模型或称为表结构
// 模型名为GoodAttributeModel代表商品属性模型
// 使用db.define方法开始定义一个新的数据库模型。
// 这个模型实际上是一个商品属性模型,用于存储商品的属性信息
// 模型的名称被指定为"GoodAttributeModel",这是在代码中引用该模型时使用的标识符
db.define("GoodAttributeModel", {
// 以下是模型属性的定义:
// id属性作为主键其类型为'serial',表示这是一个自增的序列号
// key: true表示这个属性是主键。
// 定义模型的第一个属性id。
// 这是一个自增的主键,用于唯一标识数据库中的每一条记录
// type: 'serial'指定了这是一个序列类型(自增类型),key: true表示这是主键。
id: {type: 'serial', key: true},
// goods_id属性表示商品ID其类型为数字Number
// 用于关联到具体的商品记录。
// 定义模型的第二个属性goods_id。
// 这是一个数字类型的属性用于存储关联的商品ID。
// 通过这个属性,可以将商品属性与具体的商品记录关联起来。
goods_id: Number,
// attr_id属性表示属性ID其类型为数字Number
// 用于关联到具体的属性记录,表示这个商品属性是哪种属性。
// 定义模型的第三个属性attr_id。
// 这也是一个数字类型的属性用于存储关联的属性ID。
// 通过这个属性,可以将商品属性与具体的属性记录关联起来,表示这个商品属性是哪种属性。
attr_id: Number,
// attr_value属性表示属性值其类型为字符串String
// 存储商品该属性的具体值如颜色为红色、尺码为L等。
// 定义模型的第四个属性attr_value。
// 这是一个字符串类型的属性,用于存储商品属性的具体值。
// 例如如果属性是颜色那么attr_value就可能是"红色"、"蓝色"等。
attr_value: String,
// add_price属性表示附加价格其类型为数字Number
// 定义模型的第五个属性add_price。
// 这是一个数字类型的属性,用于存储由于这个属性而导致的附加价格。
// 如果某个属性会导致商品价格变动(如不同颜色价格不同),则在这里存储增加的金额。
add_price: Number
}, {
// 以下是模型选项的定义:
// table选项指定这个模型在数据库中对应的表名。
// 在这个例子中表名为sp_goods_attr表示商品属性表。
// 定义模型的选项或配置。
// 在这个例子中只定义了一个选项table。
// table选项指定了模型在数据库中对应的表名。
// 在这个例子中,表名被指定为"sp_goods_attr",这是数据库中存储商品属性信息的表的名称。
table: "sp_goods_attr"
});
// 模型定义完成调用回调函数callback。
// 传入无参数,表示模型定义成功,可以进行后续操作。
// 回调函数通常用于执行一些后续的逻辑处理,如初始化数据、启动服务等。
// 模型定义完成。现在我们调用回调函数callback。
// 由于我们没有向回调函数传递任何参数,这通常表示模型定义成功,没有发生错误。
// 回调函数可以在这里执行一些后续操作,如初始化数据、启动服务等。
// 在这个例子中,回调函数被简单地调用,没有执行任何额外的逻辑。
return callback();
}

@ -1,44 +1,44 @@
// 导出一个函数,这个函数接受两个参数:
// 第一个参数是数据库对象db提供了与数据库进行交互的能力;
// 第二个参数是一个回调函数callback在模型定义完成后被调用。
// 导出一个函数,这个函数是模块的主要接口,它接受两个参数:
// 第一个参数是数据库对象db封装了与数据库进行交互的所有能力;
// 第二个参数是一个回调函数callback在模型定义成功完成后被调用。
module.exports = function(db, callback) {
// 开始定义一个用户模型,但这里实际上是一个商品图片模型。
// 使用db.define方法它是用于在数据库中定义新模型或表结构
// 这里的模型名为GoodPicModel代表商品图片模型
// 使用db.define方法开始定义一个新的数据库模型。
// 需要注意的是,虽然这里提到的是“用户模型”,但实际上定义的是一个商品图片模型
// 模型的名称被指定为"GoodPicModel",这是在代码中引用该模型时的标识符
db.define("GoodPicModel", {
// 以下是模型属性的定义部分
// 以下是该模型属性的定义,每个属性都对应数据库表中的一个字段
// pics_id属性作为主键,其类型为'serial',表示这是一个自增的序列号。
// key: true表明这个属性是主键用于唯一标识每条记录。
// pics_id属性这是模型的主键,类型为'serial',表示这是一个自增的序列号。
// key: true表明这个属性是主键用于唯一标识数据库中的条记录。
pics_id: {type: 'serial', key: true},
// goods_id属性表示商品ID类型为数字(Number
// 这个属性用于关联商品图片与其对应的商品记录
// goods_id属性表示关联的商品ID类型为Number。
// 这个属性用于将商品图片与其对应的商品记录关联起来
goods_id: Number,
// pics_big属性表示商品的大图地址类型为字符串(String
// 存储商品大图的URL链接用于展示商品的高清图片
// pics_big属性表示商品的大图地址类型为String。
// 存储商品大图的URL链接用于在需要高清图片展示时使用
pics_big: String,
// pics_mid属性表示商品的中图地址类型为字符串(String
// 存储商品中图的URL链接用于在需要中等尺寸图片展示。
// pics_mid属性表示商品的中图地址类型为String。
// 存储商品中图的URL链接用于在需要中等尺寸图片展示时使用
pics_mid: String,
// pics_sma属性表示商品的小图地址类型为字符串(String
// 存储商品小图的URL链接通常用于商品列表或缩略图展示
// pics_sma属性表示商品的小图地址类型为String。
// 存储商品小图的URL链接通常用于商品列表或缩略图展示场景
pics_sma: String
}, {
// 以下是模型选项的定义部分:
// 以下是模型选项或配置的定义部分:
// table选项指定这个模型在数据库中对应的表名。
// 在这个例子中,表名为sp_goods_pics代表商品图片表
// 在这个例子中,表名被指定为"sp_goods_pics",这是数据库中存储商品图片信息的表的名称
// 所有与GoodPicModel相关的数据库操作都会针对这个表进行。
table: "sp_goods_pics"
});
// 模型定义完成,现在调用回调函数callback。
// 由于模型定义通常不会返回任何结果(除非出错),因此这里传入无参数。
// 模型定义完成。现在,我们调用之前传入的回调函数callback。
// 由于模型定义操作通常不会返回任何结果(除非出现错误),因此这里我们传入一个空参数。
// 回调函数可以在此处执行一些后续的逻辑处理,如初始化数据、启动服务等。
// 但在这个例子中,回调函数可能只是简单地表示模型定义过程的结束。
// 但在这个例子中,回调函数可能只是被用来简单地表示模型定义过程的结束,或者进行一些简单的日志记录
return callback();
}

@ -1,26 +1,52 @@
// 导出一个函数这个函数接受数据库对象db和一个回调函数callback作为参数
// 导出一个函数,该函数是模块的主要接口。
// 它接受两个参数数据库对象db用于数据库操作和一个回调函数callback在模型定义后执行
module.exports = function(db, callback) {
// 用户模型
// 使用db.define方法定义一个模型模型名为PermissionModel
// 定义一个名为"PermissionModel"的模型,用于表示系统中的权限。
// 使用db.define方法该方法来自传入的数据库对象db。
db.define("PermissionModel", {
// 定义模型的属性
// 定义模型的属性,这些属性将映射到数据库表中的列。
// ps_id属性权限的唯一标识符类型为'serial',表示这是一个自增的序列。
// key: true表明这个属性是主键。
ps_id: {type: 'serial', key: true},
// 权限ID自增主键
// 注释权限ID自增主键用于唯一标识每个权限记录。
// ps_name属性权限的名称类型为字符串String
// 用于存储权限的描述性名称。
ps_name: String,
// 权限名称,类型为字符串
// 注释:权限名称,类型为字符串,用于标识和描述权限。
// ps_pid属性父权限的ID类型为数字Number
// 用于表示权限之间的层级关系,即哪个权限是另一个权限的父级。
ps_pid: Number,
// 父权限ID类型为数字
// 注释父权限ID类型为数字用于建立权限的层级结构。
// ps_c属性控制器名称类型为字符串String
// 在MVC架构中控制器负责处理用户的请求。
// 这个属性可能用于指示哪个控制器与这个权限相关联。
ps_c: String,
// 控制器名称,类型为字符串
// 注释:控制器名称,类型为字符串,用于指示处理请求的控制器。
// ps_a属性动作名称类型为字符串String
// 在MVC架构中动作是控制器中的一个方法用于执行特定的任务。
// 这个属性可能用于指示哪个动作与这个权限相关联。
ps_a: String,
// 动作名称,类型为字符串
// 注释:动作名称,类型为字符串,用于指示控制器中要执行的动作。
// ps_level属性权限级别类型为字符串String
// 这个属性可能用于表示权限的重要性或访问级别。
ps_level: String
// 权限级别,类型为字符串
// 注释:权限级别,类型为字符串,用于表示权限的等级或重要性。
}, {
// 定义模型的选项
// 定义模型的选项,这些选项用于配置模型的行为或属性。
// table选项指定这个模型在数据库中对应的表名。
// 在这个例子中,表名被指定为"sp_permission"。
table: "sp_permission"
// 指定模型对应的数据库表名为sp_permission
// 注释:指定模型对应的数据库表名为sp_permission,这是存储权限信息的数据库表。
});
// 调用回调函数,传入无参数
// 调用回调函数callback表示模型定义已经完成。
// 回调函数不接受任何参数,因为它主要用于执行一些后续的逻辑处理,而不是处理模型定义的结果。
return callback();
}

@ -1,22 +1,51 @@
// 导出一个函数这个函数接受数据库对象db和一个回调函数callback作为参数
// 导出一个函数,这个函数是模块的主要接口。
// 它接受两个参数数据库对象db用于数据库操作和一个回调函数callback在模型定义后执行
module.exports = function(db, callback) {
// 报表模型2
// 使用db.define方法定义一个模型模型名为ReportTwoModel
// 这一行开始定义了一个名为"ReportTwoModel"的模型。
// db.define是数据库操作的一部分用于创建一个新的模型。
// 这个模型可能用于存储报表数据,特别是与页面相关的统计数据。
db.define("ReportTwoModel", {
// 定义模型的属性
// 以下是模型属性的定义部分。
// 每个属性都映射到数据库表中的一个列。
// id属性这是模型的主键用于唯一标识每条记录。
// type: 'serial' 表示这是一个自增的整数序列。
// key: true 表示这是主键字段。
id: {type: 'serial', key: true},
// 唯一标识ID自增主键
// 注释这是报表记录的唯一标识ID它是一个自增的主键。
// rp2_page属性用于存储与报表关联的页面名称。
// 类型为String表示这是一个字符串类型的字段。
rp2_page: String,
// 页面名称,类型为字符串
// 注释:这是报表关联的页面名称,它是一个字符串类型的字段。
// rp2_count属性用于存储与页面相关的统计数据如访问次数。
// 类型为Number表示这是一个数字类型的字段。
rp2_count: Number,
// 计数,类型为数字(可能是页面访问次数或其他统计数据)
// 注释:这是与报表页面相关的统计数据,如访问次数,它是一个数字类型的字段。
// rp2_date属性用于存储报表的生成日期。
// 类型为"date"并且time: false表示只存储日期部分不存储时间部分。
rp2_date: { type: "date", time: false }
// 报表日期,类型为日期,不包含时间信息
// 注释:这是报表的生成日期,只包含日期部分,不包含时间部分,它是一个日期类型的字段。
}, {
// 定义模型的选项
// 以下是模型选项的定义部分。
// 这些选项用于配置模型的行为或属性。
// table选项指定这个模型在数据库中对应的表名。
// 在这个例子中,表名被指定为"sp_report_2"。
table: "sp_report_2"
// 指定模型对应的数据库表名为sp_report_2
// 注释这是模型对应的数据库表名存储报表相关数据的表名为sp_report_2。
});
// 调用回调函数,传入无参数
// 这一行调用了回调函数callback。
// 回调函数是在模型定义完成后执行的,它不接受任何参数。
// 在这个例子中回调函数的调用表示ReportTwoModel模型已经成功定义。
// 这之后,模型就可以在应用程序的其他部分被引用和使用了。
return callback();
}
Loading…
Cancel
Save