改写数据库在用户的基础上 加上其他字段
改写前需删除数据库所以表,重新上传
上层可以引用下层,下层无法引用上层,防止循环引用
users:用户信息,用户创建账号的相关信息内容;
course: 课程信息,具体课程的内容,课程中视频的信息、以及课程下载
organization:课程机构信息、机构城市的信息、机构里老师的信息
operation:用户的操作信息、用户咨询信息、评论、用户收藏、用户消息、用户课程
User中创建一个添加时间的基类
user:用户user层的设计:
内置用户类AbstractUser就是Django内置的一个关于用户操作的类,内置用户类AbstractUser就是Django内置的一个关于用户操作的类from
django.contrib.auth.models import AbstractUser
BaseModel类:创建一个时间基类,abstract=True,那么模型会被认为是一个抽象模型。抽象模型本身不实际生成数据库表,而是作为其它模型的父类,被继承使用。具体内容可以参考Django模型的继承。
class Meta:
abstract = True
UserProfile:创建用户表,包含具体的用户信息
null=True,blank=True
null是在数据库层面保存的一个空值,blank是在django验证的权限,表明允许为空
upload_to: 上传字段的路径
course: 课程信息model层的设计:
Course:创建具体的课程类型,外键与老师信息绑定(一个老师可以有多个课程)
Lesson:某个课程的具体信息,外键与课程类型绑定
Video:# 视频的信息、地址、学习时长等信息,与课程信息绑定
CourseResource:课程下载信息
organization:organization层的设计:
CourseOrg:课程机构,这个添加了一个City,由用户自行填写城市,存放数据库记录
Teacher:机构中老师具体信息,与机构形成外键绑定
orperation:orperation层的设计
UserAsk:用户的咨询信息
CourseComments:对课程的相关评论,一个课程拥有多个评论,所以这里绑定课程类;
UserFavorite:用户的收藏数据
UserMessage:用户的消息通知
UserCourse:用户所拥有的课程
除了显示的字段还有一些隐性字段 设计时的考虑:Txteld