设计一个论坛的表结构

```

a. 只能使用手机号+验证码登录注册
b. 可以发布贴子
c. 可以互相关注
d. 可以对贴子发布评论
e. 可以对贴子的评论进行引用后再回复

```

# 关注表
CREATE TABLE Attention(
    `id` int not null auto_increment comment '关注表id',
    `user_id` int comment '用户id',
    `followed_user_id` int comment '关注用户id',
    `state` int(5) comment '100 已关注 101 删除关注',
    `create_at` datetime DEFAULT CURRENT_TIMESTAMP,
    `update_at` datetime DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id),
    index(user_id),
    CONSTRAINT `attention_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`) ON DELETE CASCADE 
);

# 评论消息表
CREATE TABLE Comment (
    `id` int not null auto_increment comment '评论id',
    `content` text comment '评论内容',
    `article_id` int comment '帖子id',
    `user_id` int comment '发布人id',
    `state` int(5) comment '100 已发表 101 删除',
    `superior_id` int comment '上级评论id',
    `create_at` datetime DEFAULT CURRENT_TIMESTAMP,
    `update_at` datetime DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id),
    index(article_id),
    CONSTRAINT `comment_ibfk_1` FOREIGN KEY (`article_id`) REFERENCES `Article` (`id`) ON DELETE CASCADE 
)ENGINE=INNODB DEFAULT CHARSET=utf8;

# 帖子表
CREATE TABLE Article (
    `id` int not null auto_increment comment '帖子id',
    `title` varchar(50) comment '帖子标题',
    `user_id` int(11) comment '发布人id',
    `state` int(5) comment '100 已发表  110 编辑 120 草稿 -101 删除',
    `put_at` datetime comment '帖子发布时间',
    `content` text comment '帖子内容',
    `comment_num` int comment '评论数',
    `create_at` datetime DEFAULT CURRENT_TIMESTAMP,
    `update_at` datetime DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id),
    index(user_id),
    CONSTRAINT `article_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `User` (`id`) ON DELETE CASCADE 
)ENGINE=INNODB DEFAULT CHARSET=utf8;

# 用户表
CREATE TABLE User (
    `id` int not null auto_increment, 
    `name` varchar(10),
    `state` int(5) comment '100 启用 -101 注销',
    `phone` varchar(15),
    `create_at` datetime DEFAULT CURRENT_TIMESTAMP,
    `update_at` datetime DEFAULT CURRENT_TIMESTAMP,
    PRIMARY KEY(id),
    UNIQUE(phone, state)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

# 验证码
CREATE TABLE AuthCode (
    `id` int not null auto_increment, 
    `phone` varchar(15), 
    `code` varchar(5),
    `state` int(5) comment '100 可用 -101 不可用',
    `next_send_code` int comment '下次可发送短信验证码时间戳',
    `create_at` datetime DEFAULT CURRENT_TIMESTAMP,
    `update_at` datetime DEFAULT CURRENT_TIMESTAMP,
    INDEX(phone),
    PRIMARY KEY(id)
)ENGINE=INNODB DEFAULT CHARSET=utf8;

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值