有问必答项目
-数据库设计文档(ask-utf-8)
表前缀的使用
早期租用公共的服务器
一个数据库,保存多个项目(问答、电子商务、医院),为了区分这些项目,使用前缀分割
ask_
ec_
hospital_
用户表 ask_user
字段名称 | 类型及精度 | 中文名称 | 是否主键 | 备注 |
user_id | int | 用户的id | true | |
username | varchar(30) | 用户名 | ||
varchar(64) | 邮箱 | |||
password | varchar(64) | 密码 | ||
is_active | tinyint | 是否激活 | 1表示激活0未激活 |
问题表 ask_question
字段名称 | 类型及精度 | 中文名称 | 是否主键 | 备注 |
question_id | int | 问题序号 | true | |
question_title | varchar(128) | 问题标题 | ||
question_desc | varchar(255) | 问题描述 | ||
cat_id | tinyint | 所属分类 | 和分类表进行关联 | |
topic_id | tinyint | 关联的话题 | ||
focus_count | int | 有多少人关注 | ||
view_count | int | 浏览量 | ||
reply_count | int | 回复量 | ||
pub_time | int | 发布时间 | 发布时的时间戳 | |
user_id | int | 发布人 |
回复表 ask_reply
字段名称 | 类型及精度 | 中文名称 | 是否主键 | 备注 |
reply_id | int | 回复序号 | true | |
question_id | int | 问题的序号 | ||
reply_content | text | 回复的内容 | ||
user_id | int | 回复的用户 | ||
reply_time | int | 回复的时间 |
1 2 乔峰最厉害 张三
2 2 鸠摩智最礼貌 李四
话题表 ask_topic
字段名称 | 类型及精度 | 中文名称 | 是否主键 | 备注 |
topic_id | int | 话题的序号 | true | |
topic_title | varchar(64) | 话题的标题 | ||
add_time | int | 发布时间 |
讨论人数:应该是有人提问问题的时候,设计了这个话题,我们就认为这个问题讨论了这个话题,将来通过sql语句连接查询
提问、讨论一个问题的时候,这个问题关于某个话题的
一个问题可不可以讨论多个话题?
一个话题里面能不能有很多问题呢?
所以他们是多对多的关系
话题问题关联表 ask_topic_question
字段名称 | 类型及精度 | 中文名称 | 是否主键 | 备注 |
topic_id | int | 话题序号 | false | |
question_id | int | 问题序号 | false |
分类表 ask_category
字段名称 | 类型及精度 | 中文名称 | 是否主键 | 备注 |
cat_id | tinyint | 分类的序号 | true | |
cat_name | varchar(20) | 分类名称 | ||
parent_id | int | 父类id |
cat_id cat_name parent_id
1 手机 0
2 交通工具 0
3 苹果手机 1