数据库设计
数据库结构
数据库参考权限的分级,我们主要成以下几大部分

表名 | 作用 | 存储内容 |
---|---|---|
User | 用户表 | 用户账号,密码,手机,唯一id等识别信息 |
Login | 路由权限表 | 根据权限角色细分的路由 |
Factory | 厂家表 | 一个用户对应一个厂家,一个厂家可以关联多个系列【二维码】 |
Series | 系列表(二维码) | 一个系列对应一个二维码,同时关联多个场景系列和产品系列 |
SceneSeries | 场景【系列】表 | 一个场景系列,关联多个场景信息 |
DefaultScene | 官方场景表 | 官方提供的默认场景 |
UserScene | 用户场景表 | 用户自定义上传的场景 |
productSeries | 产品【系列】表 | 一个产品系列,关联多个产品 |
products | 产品信息表 | 产品信息、位置、尺寸、上传时间、等等等等等 |
User用户表
数据结构
字段名 | 类型 | 示例 | 说明 |
---|---|---|---|
_id | ObjectID | "5f72aa97aed9483f2c56b953" | 唯一id后面其他表以 u_id 记录 |
add_time | string | "1601350295033" | 创建时间 |
router_list | string | "super"|"factory"|"admin"|"public" | 权限角色 |
username | string | "name" | 用户名 |
password | string | "5f72aa97aed9483f2c56b953" | 用户密码:加密加盐后的md5 |
parent | string | "5f9c264cfac73e3d0cad5a17" | 创建改账号的账号id |
其他验证。。 |
如果添了第三方登录,表可能更复杂一下,会记录电话,
微信id
,qqid
等等等其他第三方登录相关信息
以记录为形式,所以没有吧生产环境最终的表放上来,实在太多东西了
数据实体
{
"_id": {
"$oid": "5f72aa97aed9483f2c56b953"
},
"add_time": "1601350295033",
"router_list": "super",
"username": "xxxx",
"password": "xxxxxxxxxxxxxxxx",
"factory_name": "test",
"parent": "5f9c264cfac73e3d0cad5a17"
}
_id 在mongodb内就是以对象的形式存储的
数据模型

Factory 厂家表
数据结构
字段名 | 类型 | 示例 | 说明 |
---|---|---|---|
_id | ObjectID | "61376a8b7fe04032102cc404" | 厂家唯一ID,其他数据表以 f_id记录 |
factory_logo | string | "/start/logo.png" | 产品封面logo |
series_max | number | 3 | 厂家最大拥有的系列数(二维码数量) |
series_count | number | 1 | 厂家当前拥有的系列数量 |
active | bool | true | 是否停用 |
username | string | "yibu" | 厂家的账号名 |
factory_name | string | "t5555" | 厂家的英文名 |
factory_name_zh | string | "t5555" | 厂家的中文名 |
desc | string | "" | 厂家信息 |
parent | string | "5f9c264cfac73e3d0cad5a17" | 厂家来自哪个管理员账号创建 |
u_id | string | "61376a8b7fe04032102cc403" | 厂家关联的用户id |
数据实体
{
"_id": {
"$oid": "61376a8b7fe04032102cc404"
},
"factory_logo": "/start/logo.png",
"series_max": 3,
"series_count": 1,
"active": true,
"username": "yibu",
"factory_name": "t5555",
"factory_name_zh": "t5555",
"desc": "",
"parent": "5f9c264cfac73e3d0cad5a17",
"u_id": "61376a8b7fe04032102cc403",
}
数据模型

Series 系列表
数据结构
字段名 | 类型 | 示例 | 说明 |
---|---|---|---|
_id | ObjectID | "5f9c2d22a16792339484ca61" | 系列唯一id |
serie_name | string | "yibu" | 系列名 |
desc | string | "官方产品系列" | 系列简介,显示在扫一扫加载页 |
factory_name | string | "yibu" | 厂家名称 |
f_id | string | "5f9c264cfac73e3d0cad5a18" | 厂家id |
u_id | string | "5f9c264cfac73e3d0cad5a17" | 用户id |
add_time | string | "2020-10-30_23:11:30" | 创建时间 |
mod_time | string | "2020-10-30_23:11:30" | 最后修改时间 |
qrcode | bool | true | 二维码是否可用 |
serie_logo | string | "/start/logo.png" | 系列封面 |
password | string | "" | 是否存在访问密码 |
product_series | string[] | ["5f9c2d22a16792339484ca61", "5fb3f7af709e4a2b6c48c54d"] | 当前系列关联的【产品系列】 |
scene_series | string[] | ["601825a84494ae50a45ad61c"] | 当前系列关联的【场景系列】 |
数据实体
{
"_id": {
"$oid": "5f9c2d22a16792339484ca61"
},
"serie_name": "yibu",
"desc": "官方产品系列",
"factory_name": "yibu",
"f_id": "5f9c264cfac73e3d0cad5a18",
"u_id": "5f9c264cfac73e3d0cad5a17",
"add_time": "2020-10-30_23:11:30",
"mod_time": "2020-10-30_23:11:30",
"__v": 0,
"qrcode": true,
"serie_logo": "/start/logo.png",
"password": "",
"product_series": ["5f9c2d22a16792339484ca61", "5fb3f7af709e4a2b6c48c54d"],
"scene_series": ["601825a84494ae50a45ad61c"]
}
数据模型

SceneSeries 【场景系列】
数据结构
字段名 | 类型 | 示例 | 说明 |
---|---|---|---|
_id | ObjectID | "601825a84494ae50a45ad61c" | 唯一ID |
type | string | "default" | "user" | "defaultToUser" | 场景的类型 |
f_id | string | "5f9c264cfac73e3d0cad5a18" | xc |
serie_name | string | "【官方系列01】" | |
add_time | string | "2021-2-02_00:00:40" |
数据实体
数据模型

DefaultScene 官方默认场景
数据结构
字段名 | 类型 | 示例 | 说明 |
---|
数据实体
数据模型

UserScene 用户自定义场景
数据结构
字段名 | 类型 | 示例 | 说明 |
---|
数据实体
数据模型

productSeries 【产品系列】
数据结构
字段名 | 类型 | 示例 | 说明 |
---|
数据实体
数据模型

products 产品表
数据结构
字段名 | 类型 | 示例 | 说明 |
---|
数据实体
数据模型
