项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server

项目线上预览:http://stuer.ericwu.cn

前言

项目其他的实现都好说,不过为了梳理好思路和架构首先要搞定数据库 设计

这里推荐使用processon.com,因为是个在线的作图平台可以很方便的和他人合作。

设计出数据表后,就可以使用sequelize来生成相应的orm对象,然后sync到数据库中从而生成对应的数据表。

数据表类图

这是我项目的设计图,后期可能还会有修改。

sequelize定义对应的orm对象

在model文件夹中定义对应的orm对象

比如user.js中如下,值得注意的是我们添加了一些额外字段以应对后期表中字段的添加。

代码中的User.sync()可以帮助我们同步到数据库,也就是自动生成users数据表

'use strict';

module.exports = app => {
const { STRING, INTEGER, TEXT } = app.Sequelize; const User = app.model.define(
'user',
{
id: { type: INTEGER, primaryKey: true, autoIncrement: true },
email: { type: STRING, comment: '用户邮箱,也是账号' },
password: { type: STRING, comment: '用户密码' },
reverse1: STRING,
reverse2: STRING(1000),
reverse3: STRING(30),
reverse4: INTEGER,
reverse5: TEXT,
reverse6: TEXT('tiny'),
},
{
paranoid: true,
underscored: false,
}
);
User.sync();
return User;
};

数据表说明

createAt、updateAt、deleteAt是每个表都会有的字段,为Date类型,代表创建、更新、删除时间。数据的删除一律使用软删除。
(1)用户表(users),用于存储用户的账号信息。

字段
类型
说明
id
Number
自增ID
email
String
邮箱,也是账号
password
String
密码,非明文存储
 
(2)用户信息表(user-infos),用于存储用户的个人相关信息。
字段
类型
说明
id
Number
用户ID,与用户表的id保持一致。
email
String
邮箱,也是账号
role
Number
用户角色ID,1毕业生,2在校生,3教师,4企业用户,5运营管理员,6学校管理员,7企业管理员,8超级管理员
name
String
用户真实姓名
nickName
String
用户昵称
personSign
String
个性签名
avatar
String
用户头像url
age
Number
年龄
gender
String
性别
phone
String
手机号码
birthTime
Date
出生时间
birthPlace
String
出生地点
eduLevel
String
学历
party
String
政治面貌
idCard
String
证件号码
idCardType
Number
证件类型,1身份证,2护照,3港澳通行证,4台胞证,5军官证,6其他
stuNum
String
学号
teaNum
String
教师编号
graduated
Number
是否毕业生,1毕业生,0在校生
enterTime
Date
入学时间
graduateTime
Date
毕业时间
nowStatus
Number
目前状态,1未就业,2就业,3升学,4留学,5创业
liveAddress
String
现居地,中文地址
liveLocation
String
现居地坐标,经纬度坐标
majorId
Number
专业ID
academyId
Number
学院ID
companyId
Number
公司ID
mSalary
Number
月薪
ySalary
Number
年薪
resume
String
个人简历
certifyType
Number
认证类型,1认证用户,0未认证用户
 
(3)公司表(companies),用于存储公司的相关信息。
字段
类型
说明
id
Number
自增ID
name
String
公司名
info
String
密码,非明文存储
regNum
String
公司经营注册号
address
String
公司地址
 
(4)专业表(majors),用于存储专业的相关信息。
字段
类型
说明
id
Number
专业ID
name
String
专业名
info
String
专业介绍
academyId
Number
所属学院ID
 
(5)学院表(academies),用于存储学院的相关信息。
字段
类型
说明
id
Number
学院ID
name
String
学院名
info
String
学院介绍
 
(6)办公自动化表(oas),用于存储办公自动化。
字段
类型
说明
id
Number
OA的ID,自增
userId
Number
发OA人,只有学校管理员可以发OA
title
String
帖子标题
content
String
帖子内容
type
Number
OA类型
academyId
Number
OA发布的来源,如工学院
 
(7)帖子表(posts),用于存储帖子的相关信息,包括讨论区、求职区、找对象、匿名区的帖子。
字段
类型
说明
id
Number
帖子ID,自增
userId
Number
发帖人
title
String
帖子标题
content
String
帖子内容
top
Number
是否置顶,1是,0否
highlight
Number
是否精华帖,1是,0否
tags
String
帖子标签
type
Number
帖子类型,1讨论区,2树洞,3找对象,4求职区
 
(8)评论表(comments),用于存储帖子的评论信息。
字段
类型
说明
id
Number
帖子ID,自增
userId
Number
评论者
postId
String
评论帖子
content
String
帖子内容
 
(9)回复表(replies),用于存储回复信息,可以回复评论/回复。
字段
类型
说明
id
Number
回复 ID,自增
commentId
String
要回复的评论ID
replyId
String
要回复的回复ID
type
Number
回复类型,1回复评论、2回复回复
conntent
String
内容
fromUserId
Number
回复者ID
toUserId
Number
被回复者ID
 
(10)点赞表(likes),用于存储点赞的相关信息,可以点赞帖子/评论/回复。
字段
类型
说明
id
Number
点赞ID,自增
userId
Number
点赞者
postId
Number
帖子ID
commentId
Number
评论ID
replyId
Number
回复ID
type
Number
点赞类型,1点赞帖子、2点赞评论、3点赞回复
 
(11)私信消息表(messages),用于存储私信消息。
字段
类型
说明
id
Number
消息ID,自增
userId
Number
发送者用户ID
friendId
Number
接收者用户ID
senderId
Number
发送者用户ID
receiveId
Number
接受者用户ID
msgType
Number
消息类型,1普通消息,2系统消息
content
String
消息内容
sendTime
Date
消息发送时间
status
Number
消息状态,1未读,2已读,3删除
 
(12)用户关注表(follows),用于存储用户关注用户信息。
字段
类型
说明
id
Number
关注ID,自增
userId
Number
关注者ID
followUserId
Number
被关注者ID
status
Number
关注状态,1关注,0取关
 
(13)设置表(settings),用于存储公共设置。
字段
类型
说明
id
Number
配置ID,自增
name
String
配置名
desc
String
配置描述
defaultValue
String
配置初始值
status
Number
配置状态:0关闭,1启用,2废弃
type
String
配置值类型,对象型object、数组型array、字符串型string、数字型number、布尔型boolean
 
(14)用户设置表(user-settings),用于存储用户个人设置。
字段
类型
说明
id
Number
用户配置ID,自增
userId
Number
用户ID
settingId
Number
配置ID
value
String
配置值
 
(15)消息通知表(notifies),用于存储消息通知。
字段
类型
说明
id
Number
消息通知ID,自增
content
String
消息内容,用于系统通知
type
Number
消息类型,1提醒,2系统通知,3私信
targetId
Number
目标的ID,比如帖子ID或者OA ID或者用户ID
targetType
String
目标的类型,帖子post、OA oa、用户user
action
String
动作类型,点赞like、评论comment、
senderId
Number
发送者ID
senderType
String
发送者类型,普通用户user,管理员admin
isRead
Number
阅读状态,1已读,0未读
userId
Number
消息接受者
 

Vue/Egg大型项目开发(二)数据库设计的更多相关文章

  1. Vue/Egg大型项目开发(一)搭建项目

    项目Github地址:前端(https://github.com/14glwu/stuer)后端(https://github.com/14glwu/stuer-server) 项目线上预览:http ...

  2. 小福bbs—项目系统设计与数据库设计

    这个作业属于哪个课程 班级链接 这个作业要求在哪里 作业要求的链接 团队名称 小福bbs 这个作业的目标 实现对校园论坛软件的制作,使其能够发布帖子,查看信息等 作业的正文 小福bbs--项目需求分析 ...

  3. T-MAX—项目系统设计与数据库设计

    团队作业第四次-项目系统设计与数据库设计 这个作业属于哪个课程 2019秋福大软件工程实践Z班 这个作业要求在哪里 团队作业第四次-项目系统设计与数据库设计 团队名称 T-MAX 这个作业的目标 在开 ...

  4. Computer-Hunters——项目系统设计与数据库设计

    Computer-Hunters--项目系统设计与数据库设计 前言 本次作业属于2019秋福大软件工程实践Z班 本次作业要求 团队名称: Computer-Hunters 本次作业目标:撰写一份针对团 ...

  5. 循序渐进开发WinForm项目(1) --数据库设计和项目框架的生成

    随笔背景:在很多时候,很多入门不久的朋友都会问我:我是从其他语言转到C#开发的,有没有一些基础性的资料给我们学习学习呢,你的框架感觉一下太大了,希望有个循序渐进的教程或者视频来学习就好了. 其实也许我 ...

  6. 基于Vue的WebApp项目开发(二)

    利用webpack解析和打包.vue组件页面 相关知识: vue项目中的每个页面其实都是一个.vue的文件,这种文件,Vue称之为组件页面,必须借助于webpack的vue-loader才能运行,所以 ...

  7. 基于Vue的WebApp项目开发(四)

    实现新闻咨询页面 目录结构 步骤一:创建newslist.vue文件 <template> <div id="tml"> <!--使用mui框架,实现 ...

  8. CakeDC(cakephp company)Git workflow--适合于较大团队大型项目开发

    CakeDC Git workflow是一个项目开发和版本发布的工作流,在这个工作流程中开发和版本发布周期是基于几个关键阶段(key phases): Development: 所有活跃的开发活动都由 ...

  9. 第003篇 深入体验C#项目开发(二)

    下半本的5个项目也看完了,还是跳着看,只看大概!        第6章 企业交互系统            作者入职一年,开始带新的2个实习生的项目!一个外资企业内部的OA交互系统,这次又是一个基于w ...

随机推荐

  1. 音频 m4a 转 wav

    背景 最近做智能家居,需要用到一些应答词 需要自己录制.但是在mac下面通过 QuickTime 录制的是 m4a格式.但是应答词需要 wav格式.所以就需要转化了 解决方法 # sox 不行, ff ...

  2. python基础3 条件判断 if嵌套

    if单向判断: stonenumber=6#为宝石数量赋值 if stonenumber>=6: #条件:如果你拥有的宝石数量大于等于6个 print('你拥有了毁灭宇宙的力量') #结果:显示 ...

  3. Word图片、表格添加题注

    1.首先为图片.表格添加题注: 2.通过交叉引用,如图**和图片.表的编号相关联起来:

  4. RemoveError: 'requests' is a dependency of conda and cannot be removed from conda's operating environment

    (base)$ conda update conda conda remove -n *** --all 或者 (base)$ conda update --force conda conda rem ...

  5. anaconda安装tensorflow报错 No module named 'tensorflow'解决方法(windows)

    这个错误的原因可能是,anaconda安装的python版本为3.7,现在tensorflow仅支持python 3.6   改变python版本:首先在命令行创建一个名为python36的环境,指定 ...

  6. BIML 101 - ETL数据清洗 系列 - BIML 快速入门教程 - 连接数据库执行SQL语句

    BIML 101 - BIML 快速入门教程 第一节 连接数据库执行SQL语句 本小节将用BIML建一个简单的可以执行的包. 新建一个biml文件,贴入下面的代码 1 <Biml xmlns=& ...

  7. vue+element-ui实现表格checkbox单选

    公司平台利用vue+elementui搭建前端页面,因为本人第一次使用vue也遇到了不少坑,因为我要实现的效果如下图所示 实现这种单选框,只能选择一个,但element-ui展示的是多选框,check ...

  8. PeopleSoft Excel To CI

    Excel to CI 链接信息要注意,HTTP还是HTTPS, 端口号从链接可以看到,没有的话可能是默认80端口. 像一下这个页面也可以用CI 导入数据(secondary page)

  9. C# 链表反转

    链表反转分这么两种情况, 一种是链表头节点始终前置,那这时候需要传一个头节点特有的标记:(简称:头不转) HEAD->Test1->Test2->Test3->Test4 反转 ...

  10. MySql 版本

    MySql 版本: netformwork 2.0 netformwork 4.0