Spring Boot实战 -- 1.需求确定和数据库设计

本文介绍了一个基于SpringBoot的简单问答系统设计,包括系统的主要功能、数据库表结构及字段定义等核心内容。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习Spring Boot,顺便做一个简单的问答系统来实践下,用来巩固加深知识的理解。

需求确定

这里写图片描述

参考知乎分析一下我们简单问答系统需要的功能:

  • 用户基本信息需要
  • 系统或者好友发送/接收的消息需要
  • 提问功能需要
  • 评论功能需要
  • 搜索功能需要
  • 内容的话后期考虑爬虫爬取

建立数据库:

根据我们的需求建立相关的数据库,

  • 用户表
  • 站内信
  • 问题
  • 评论

搜索功能准备用全文搜索服务器来做,就不建表了

用户(User)
属性类型含义
idintid号
namevarchar用户姓名
passwordvarchar用户密码
saltvarchar密码盐值
head_urlvarchar用户头像
站内信(Message)
属性类型含义
idintid号
fromidint发送者id
toidint接受者id
contenttext站内信内容
conversation_idint对话的id号
created_datedatetime创建时间
hasReadint是否已读
问题(Question)
属性类型含义
idintid号
titlevarchar问题标题
contenttext问题内容
user_idint提问用户id
created_datedatetime创建时间
comment_countint评论数量
评论(Comment)
属性类型含义
idid号
contenttext评论内容
user_idint评论者id
created_datedatetime评论时间
entity_idint实体id
entity_typeint实体类型
statusint评论状态
DROP TABLE IF EXISTS `question`;
CREATE TABLE `question` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `title` VARCHAR(255) NOT NULL,
  `content` TEXT NULL,
  `user_id` INT NOT NULL,
  `created_date` DATETIME NOT NULL,
  `comment_count` INT NOT NULL,
  PRIMARY KEY (`id`),
  INDEX `date_index` (`created_date` ASC));

  DROP TABLE IF EXISTS `user`;
  CREATE TABLE `user` (
    `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
    `name` varchar(64) NOT NULL DEFAULT '',
    `password` varchar(128) NOT NULL DEFAULT '',
    `salt` varchar(32) NOT NULL DEFAULT '',
    `head_url` varchar(256) NOT NULL DEFAULT '',
    PRIMARY KEY (`id`),
    UNIQUE KEY `name` (`name`)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  DROP TABLE IF EXISTS `comment`;
  CREATE TABLE `comment` (
  `id` INT NOT NULL AUTO_INCREMENT,
  `content` TEXT NOT NULL,
  `user_id` INT NOT NULL,
  `entity_id` INT NOT NULL,
  `entity_type` INT NOT NULL,
  `created_date` DATETIME NOT NULL,
  `status` INT NOT NULL DEFAULT 0,
  PRIMARY KEY (`id`),
  INDEX `entity_index` (`entity_id` ASC, `entity_type` ASC)
  ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

  DROP TABLE IF EXISTS `message`;
  CREATE TABLE `message` (
    `id` INT NOT NULL AUTO_INCREMENT,
    `from_id` INT NULL,
    `to_id` INT NULL,
    `content` TEXT NULL,
    `created_date` DATETIME NULL,
    `has_read` INT NULL,
    `conversation_id` VARCHAR(45) NOT NULL,
    PRIMARY KEY (`id`),
    INDEX `conversation_index` (`conversation_id` ASC),
    INDEX `created_date` (`created_date` ASC))
  ENGINE = InnoDB
  DEFAULT CHARACTER SET = utf8;
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值