标签:identity img openid 邮箱 price json 处理 商品 问题
数据表是项目的基础。
数据表,服务于业务,脱离业务的数据表是没有意义的。
数据表,不存在最完美,只存在是否能够满足现有业务。
数据表是需求的体现,根据框图,和需求文档,抽象出合理的数据模型。
根据逐渐积累的建表经验,完成表的创建。
表与表之前,通过逻辑外键来关联关系。
选择合适的表名称,选择合适的字段名称,选择合适的存储类型,做好备注。
表不是一蹴而就的,表创建也是一个逐渐修改和完善的过程。
随着需求的变更,灵活变动。
最好保证表的逻辑是合适的,走的通的。
尽量满足三范式,将表尽量独立化,每个表代表一个对象的抽象。
建表也要灵活,快速迭代。
如果有必要,适度的冗余也是可以的,方便查询。
建表是一件费脑子的事情,建表的过程,是一个整理需求,明确需求的过程。
这一系列的表,不一定是最好的,但是基本也够用了。很多表都大同小异,有些还是重复的。
目前只是1.0版本,后续开发的时候,肯定还会有所补充和扩展。
tf_features_banner表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| banner_img | varchar(255) | 图片 | 
| status | tinyint(1) | 是否启用 1启用 2 关闭 | 
| is_del | tinyint(1) | 是否删除 0 未删除 1删除 | 
| addtime | int | 创建时间 | 
tf_banner表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| banner_img | varchar(255) | 图片 | 
| banner_link | varchar(255) | 图片链接 | 
| status | tinyint(1) | 是否启用 1启用 2 关闭 | 
| is_del | tinyint(1) | 是否删除 0 未删除 1删除 | 
| addtime | int | 创建时间 | 
tf_user表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| openid | varchar(255) | openid 唯一 | 
| tel | char(11) | 手机号 11 位够用了 | 
| tel_prefix | varchar(10) | +86 | 
| tel_nation | varchar(20) | 国家 | 
| nickname | varchar(50) | 昵称 | 
| sex | char(1) | 性别 1男 2女 | 
| avatarurl | varchar(255) | 头像 | 
| exam_date | varchar(50) | 考试日期 | 
| target_score | varchar(50) | 目标分数 | 
| has_experience | tinyint(1) | 之前是否考过1考过 2未考过 | 
| addtime | int(11) | 创建时间 | 
| varchar(255) | 邮箱 | |
| integral | int(11) | 积分 | 
| city | varchar(30) | 国家,城市 | 
| identity | tinyint(4) | 身份 1 学生 2 老师(兼有学生功能) | 
| is_vip | tinyint(4) | 是否是vip 0否 1是 | 
| vip_deadline | int(11) | 会员到期日期 | 
| reg_ip | varchar(16) | 注册ip | 
| status | tinyint(4) | 状态 1 有效 2 冻结 | 
tf_apply_material 领取资料
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | uid | 用户 | 
| varchar(255) | 邮箱 | |
| is_send | tinyint(1) | 是否发送 0 未发送 1 发送 | 
| is_del | tinyint(1) | 是否删除 0 未删除 1 删除 | 
| addtime | int | 创建时间 | 
tf_famous_teacher 名师表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | uid | 关联用户id | 
| realname | varchar(50) | 姓名 | 
| avatarurl | varchar(255) | 头像 | 
| tag1 | varchar(8) | 职称 | 
| tag2 | varchar(8) | 主攻方向 | 
| tag3 | varchar(8) | 所在校区 | 
| desc | varchar(500) | 描述 | 
| content | text | 详情 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
| addtime | int | 创建时间 | 
tf_high_score 高分榜
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| number | varchar(11) | 编号 唯一 | 
| title | varchar(100) | 标题 | 
| img | varchar(255) | 标图 | 
| subtitle | varchar(50) | 小标题 | 
| author | varchar(20) | 录入人 | 
| tag1 | varchar(8) | 标签1 | 
| tag2 | varchar(8) | 标签2 | 
| tag3 | varchar(8) | 标签3 | 
| addtime | int(11) | 添加时间 | 
| content | text | 详情 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
tf_offline_activity 最新活动
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(100) | 标题 | 
| campus | varchar(20) | 校区 | 
| title_img | varchar(255) | 标图 | 
| content_img | varchar(255) | 内容图 | 
| tag1 | varchar(8) | 标签1 | 
| tag2 | varchar(8) | 标签2 | 
| tag3 | varchar(8) | 标签3 | 
| activity_time | int(11) | 活动日期 | 
| add_time | int(11) | 添加时间 | 
| content | text | 活动内容 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
| is_hot | tinyint(1) | 0 非热门 1热门 | 
tf_new_word 生词
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int(11) | 用户id | 
| word | varchar(50) | 单词 | 
| addtime | int(11) | 添加时间 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
tf_question_type 题型
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| short_name | varchar(10) | 名称缩写 | 
| long_name | varchar(50) | 长名称 | 
| remark | varchar(20) | 中文备注 | 
| pid | int(11) | 父id | 
| level | tinyint(1) | 1 根 2 子 | 
| weight | int | 权重,越大越靠前 | 
tf_test_point 考点
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| name | varchar(50) | 名称 | 
| remark | varchar(50) | 中文备注 | 
| level | tinyint(1) | 等级 1 国家 2城市 3考点 | 
| pid | int(11) | 父id | 
| weight | int(11) | 权重,越大越靠前 默认0 | 
tf_memory 回忆
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int(11) | uid | 
| title | varchar(50) | 标题 | 
| examtime | int(11) | 考试日期 | 
| addtime | int(11) | 创建日期 | 
| country_id | int(11) | 国家 | 
| city_id | int(11) | 城市 | 
| point_id | int(11) | 考点 | 
| is_del | tinyint(1) | 是否删除 0未删除 1删除 | 
| is_release | tinyint(1) | 是否发布 0未发布 1发布 | 
tf_memory_question 回忆题目内容
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| memory_id | int(11) | memory_id | 
| type_root | int(11) | 根类型 | 
| type_child | int(11) | 子类型 | 
| title | varchar(30) | 题目标题 | 
| content | varchar(500) | 题目内容 | 
| key_point | varchar(100) | 要点 | 
tf_memory_like 回忆点赞
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| memory_id | int(11) | memory_id | 
| uid | int(11) | uid | 
tf_memory_collect 回忆关注
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| memory_id | int(11) | memory_id | 
| uid | int(11) | uid | 
| addtime | int(11) | 关注时间 | 
tf_memory_comment 回忆评论
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| memory_id | int(11) | memory_id | 
| uid | int(11) | uid | 
| nickname | varchar(50) | 昵称 冗余 | 
| avatarurl | varchar(255) | 头像 冗余 | 
| content | varchar(500) | 评论内容 | 
| like_num | int(11) | 点赞数 | 
| addtime | int(11) | 评论时间 | 
tf_memory_comment_like 回忆评论点赞
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| memory_comment_id | int(11) | memory_comment_id | 
| uid | int(11) | uid | 
tf_article 文章
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(100) | 标题 | 
| title_img | varchar(255) | 标题图 | 
| tag1 | char(8) | 标签1 | 
| tag2 | char(8) | 标签2 | 
| tag3 | char(8) | 标签3 | 
| part_one | text | 内容一 | 
| video_url | varchar(255) | 视频链接 | 
| part_two | text | 内容二 | 
| audio_url | varchar(255) | 音频链接 | 
| part_three | text | 内容三 | 
| addtime | int(11) | 添加时间 | 
| author | varchar(50) | 作者 | 
| type | tinyint(1) | 1 考试介绍 2 高分经验 3 词汇专区 4 语法专区 5 发音专区 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
tf_question 题目表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(200) | 标题 | 
| content | text | 题目内容 文字或图片 | 
| answer | text | 题目答案或要点 | 
| question_type_id | int(11) | 题目类型 | 
| question_type_name | varchar(10) | 题目类型名称 冗余 | 
| recording | varchar(255) | 题目录音 非必填 | 
| addtime | int(11) | 添加时间 | 
| confirm_num | int(11) | 确认考过数量 | 
| type | tinyint(1) | 1 全局开放 2 练习优先 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
tf_question_answer_record 答题记录表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int(11) | id | 
| uid | int(11) | uid | 
| question_id | int(11) | 题目类型 | 
| addtime | int(11) | 添加时间 | 
tf_question_comment 题目评论表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| question_id | int(11) | memory_id | 
| uid | int(11) | uid | 
| nickname | varchar(50) | 昵称 冗余 | 
| avatarurl | varchar(255) | 头像 冗余 | 
| content | text | 评论内容 | 
| like_num | int(11) | 点赞数 | 
| addtime | int(11) | 评论时间 | 
tf_question_comment_like 题目评论点赞
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| question_comment_id | int(11) | question_comment_id | 
| uid | int(11) | uid | 
tf_question_confirm 题目确认
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| question_id | int(11) | 题目id | 
| uid | int(11) | uid | 
tf_question_collect 题目收藏
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| question_id | int(11) | 题目id | 
| uid | int(11) | uid | 
| addtime | int(11) | 关注时间 | 
tf_question_exercise 题目练习
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| question_id | int(11) | 题目id | 
| uid | int(11) | uid | 
| recording_url | varchar(255) | 录音地址 | 
| recording_seconds | int(11) | 录音时长 冗余 | 
| nickname | varchar(50) | 昵称 冗余 | 
| avatarurl | varchar(255) | 头像 冗余 | 
| like_num | int(11) | 点赞数 | 
| addtime | int(11) | 关注时间 | 
tf_question_exercise_like 题目练习点赞
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| question_exercise_id | int(11) | 练习id | 
| uid | int(11) | uid | 
tf_offline_course 线下课程
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(100) | 标题 | 
| title_img | varchar(255) | 标图 | 
| content_img | varchar(255) | 内容图 | 
| discount | varchar(10) | 限时优惠 | 
| lecturer | varchar(10) | 主讲老师 | 
| campus | varchar(10) | 校区 | 
| tag1 | varchar(8) | 标签1 | 
| tag2 | varchar(8) | 标签2 | 
| tag3 | varchar(8) | 标签3 | 
| activity_time | int(11) | 开课日期 | 
| add_time | int(11) | 添加时间 | 
| intro_content | text | 简介内容 | 
| lecturer_content | text | 主讲老师内容 | 
| discount_content | text | 优惠内容 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
| is_hot | tinyint(1) | 0 非热门 1热门 | 
tf_practice 随堂练习
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(50) | 标题 | 
| intro | varchar(500) | 简介 | 
| addtime | int(11) | 添加时间 | 
| begintime | int(11) | 开始时间 | 
| endtime | int(11) | 结束时间 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
| weight | int(11) | 权重,数字越大越靠前 | 
tf_practice_task 练习任务
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| practice_id | int | 练习id | 
| title | varchar(50) | 标题 | 
| addtime | int(11) | 添加时间 | 
| begintime | int(11) | 开始时间 | 
| endtime | int(11) | 结束时间 | 
| is_show | tinyint(1) | 1显示 2不显示 | 
| is_del | tinyint(1) | 0未删除 1删除 | 
| weight | int(11) | 权重,数字越大越靠前 | 
tf_task_question 练习习题
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| task_id | int | 任务id | 
| question_id | varchar(50) | 问题id | 
| weight | int(11) | 权重,数字越大越靠前 | 
tf_practice_collect 练习收藏
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| practice_id | int(11) | 题目id | 
| uid | int(11) | uid | 
| addtime | int(11) | 添加时间 | 
tf_user_integral 用户积分
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int(11) | uid | 
| val | int(11) | 积分值 | 
| val_type | int(11) | 1正(增) 2负(减) | 
| remark | varchar(50) | 描述 | 
| type | tinyint(1) | 1签到 2评论 3练习 4邀请好友 5创建回忆 6积分兑换 | 
| addtime | int(11) | 添加时间 | 
tf_reserve_consulting 预约咨询
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int(11) | uid | 
| teacher_id | int(11) | 预约老师id | 
| realname | varchar(50) | 姓名 | 
| wechat_id | varchar(50) | 微信号 | 
| tel | char(20) | 手机号 | 
| is_test | tinyint(1) | 0未考过pte 1 考过pte | 
| remark | varchar(500) | 备注 | 
| status | tinyint(1) | 状态 1未处理 2 已处理 | 
| addtime | int(11) | 添加时间 | 
tf_reserve_consulting_img 图片
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| reserve_consulting_id | int(11) | reserve_consulting_id | 
| imgurl | varchar(255) | 图片地址 | 
tf_reserve_report 预约成绩单
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int(11) | uid | 
| teacher_id | int(11) | 预约老师id | 
| realname | varchar(50) | 姓名 | 
| wechat_id | varchar(50) | 微信号 | 
| tel | char(20) | 手机号 | 
| is_test | tinyint(1) | 0未考过pte 1 考过pte | 
| remark | varchar(500) | 备注 | 
| status | tinyint(1) | 状态 1未处理 2 已处理 | 
| addtime | int(11) | 添加时间 | 
tf_reserve_report_img 预约成绩单图片
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| reserve_report_id | int(11) | 成绩单图片 | 
| imgurl | varchar(255) | 图片地址 | 
tf_vip_order 购买会员订单表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| order_num | varchar(100) | 订单号 | 
| uid | int(11) | uid | 
| amount | decimal(10,2) | 充值金额 | 
| duration | int | vip时长 单位为月 | 
| transaction_id | varchar(100) | 支付id | 
| paytime | int(11) | 支付时间 | 
| addtime | int(11) | 创建时间 | 
| status | tinyint(1) | 状态 1 待支付 2 已支付 ... | 
tf_vip_exchange_code 兑换码表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| exchange_code | char(8) | 兑换码 | 
| duration | int | vip时长 单位为月 | 
| is_use | tinyint(1) | 0未使用 1 已使用 | 
| uid | int(1) | 使用人 | 
| usetime | int(11) | 使用日期 | 
| addtime | int(11) | 创建时间 | 
tf_goods 周边商品表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(255) | 名称 | 
| price | decimal(10,2) | 价格 | 
| title_img1 | varchar(255) | 宽图 | 
| title_img2 | varchar(255) | 窄图 | 
| is_new | tinyint(1) | 是否新品 0 否 1是 | 
| is_hot | tinyint(1) | 是否热门 0 否 1是 | 
| is_rec | tinyint(1) | 是否推荐 0 否 1是 | 
| is_del | tinyint(1) | 是否删除 0 否 1是 | 
| is_show | tinyint(1) | 是否显示 1是 2否 | 
| detail | text | 详情 | 
| addtime | int(11) | 添加时间 | 
tf_goods_banner 周边商品轮播表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| goods_id | int | goods_id | 
| imgurl | varchar(255) | 图片地址 | 
| weight | int(11) | 权重 数字越大越靠前 | 
| addtime | int(11) | 添加时间 | 
tf_integral_goods 积分商品表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| title | varchar(255) | 名称 | 
| integral | int(11) | 所需积分 | 
| title_img1 | varchar(255) | 宽图 | 
| title_img2 | varchar(255) | 窄图 | 
| is_new | tinyint(1) | 是否新品 0 否 1是 | 
| is_hot | tinyint(1) | 是否热门 0 否 1是 | 
| is_rec | tinyint(1) | 是否推荐 0 否 1是 | 
| is_del | tinyint(1) | 是否删除 0 否 1是 | 
| is_show | tinyint(1) | 是否显示 1是 2否 | 
| expiration_days | int(11) | 兑换后过期天数 0 表示兑换后永不过期 | 
| detail | text | 详情 | 
| addtime | int(11) | 添加时间 | 
tf_integral_goods_banner 周边商品轮播表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| integral_goods_id | int | integral_goods_id | 
| imgurl | varchar(255) | 图片地址 | 
| weight | int(11) | 权重 数字越大越靠前 | 
| addtime | int(11) | 添加时间 | 
tf_integral_order 积分商品订单
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| code | varchar(8) | 兑换码 | 
| uid | int(11) | uid | 
| integral_goods_id | int(11) | integral_goods_id | 
| title | varchar(255) | 商品名称 冗余 | 
| title_img1 | varchar(255) | 商品图片 宽图 冗余 | 
| title_img2 | varchar(255) | 商品图片 窄图 冗余 | 
| integral | int | 支付积分 | 
| addtime | int(11) | 创建时间 | 
| expiration_time | int(11) | 过期时间 | 
| status | tinyint(1) | 状态 1 未使用 2 已使用 3 已过期 | 
tf_goods_order 周边商品订单
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| order_num | varchar(100) | 订单号 | 
| uid | int(11) | uid | 
| goods_id | int(11) | integral_goods_id | 
| price | decimal(10,2) | 支付金额 | 
| transaction_id | varchar(100) | 支付id | 
| consignee_name | varchar(30) | 收货人姓名 | 
| consignee_tel | varchar(20) | 收货人电话 | 
| consignee_address | varchar(255) | 收货人详细地址 | 
| paytime | int(11) | 支付时间 | 
| addtime | int(11) | 创建时间 | 
| status | tinyint(1) | 状态 1 待支付 2 已支付 未发货 3 已发货 ... | 
tf_vip_apply_export vip导出
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int | uid | 
| varchar(255) | 邮箱 | |
| content | text | 内容 json存储 | 
| addtime | int(11) | 申请时间 | 
| status | tinyint(1) | 1 未处理 2 已处理 | 
tf_msg 消息表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| content | varchar(255) | 消息内容 | 
| uid | int(11) | 收件人id 0表示面向全部用户 | 
| type | tinyint(1) | 1积分扣除消息2购买周边产品消息3收到评论消息 4开通会员提示 5会员到期提示 6 主动推送消息 | 
| addtime | int(11) | 消息发送时间 | 
tf_msg_mark 消息标记已读表
| 字段 | 类型 | 备注 | 
|---|---|---|
| id | int | id | 
| uid | int | uid | 
| msg_id | int | msg_id | 
| readtime | int | 阅读时间 | 
标签:identity img openid 邮箱 price json 处理 商品 问题
原文地址:https://www.cnblogs.com/jiqing9006/p/9176910.html