MySQL 数据库设计:用户管理、食品药品提醒、救生知识、智能问答和区域地图

本文提供一套 MySQL 数据库结构设计,涵盖以下功能:

  • 用户登录注册
  • 纪录食品 & 药品信息以及过期提醒
  • 救生知识阅览,收藏和备注;对这些知识分类并且推荐用户感兴趣的相关知识
  • 对设置有时间的事件提醒,包括食品和药品即将过期时反馈一个信息给用户
  • 智能问答,用户可以进行提问(人工客服回答或管理员回答)
  • 有区域图可以快速锁定最近的医护点,并且获取医院信息;通知紧急联系人

表结构设计:

用户表 (user)

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(50) NOT NULL COMMENT '密码',
  `register_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

食品 & 药品信息表 (product)

CREATE TABLE `product` (
  `product_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品ID',
  `product_name` varchar(50) NOT NULL COMMENT '商品名称',
  `product_type` varchar(50) NOT NULL COMMENT '商品类型',
  `expiration_date` date NOT NULL COMMENT '保质期',
  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  PRIMARY KEY (`product_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `product_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食品&药品信息表';

救生知识表 (knowledge)

CREATE TABLE `knowledge` (
  `knowledge_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '知识ID',
  `knowledge_title` varchar(50) NOT NULL COMMENT '知识标题',
  `knowledge_content` text NOT NULL COMMENT '知识内容',
  `knowledge_category` varchar(50) NOT NULL COMMENT '知识分类',
  PRIMARY KEY (`knowledge_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='救生知识表';

收藏表 (collection)

CREATE TABLE `collection` (
  `collection_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `knowledge_id` int(11) NOT NULL COMMENT '知识ID',
  `collection_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间',
  PRIMARY KEY (`collection_id`),
  KEY `user_id` (`user_id`),
  KEY `knowledge_id` (`knowledge_id`),
  CONSTRAINT `collection_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `collection_ibfk_2` FOREIGN KEY (`knowledge_id`) REFERENCES `knowledge` (`knowledge_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收藏表';

备注表 (note)

CREATE TABLE `note` (
  `note_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '备注ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `knowledge_id` int(11) NOT NULL COMMENT '知识ID',
  `note_content` text NOT NULL COMMENT '备注内容',
  PRIMARY KEY (`note_id`),
  KEY `user_id` (`user_id`),
  KEY `knowledge_id` (`knowledge_id`),
  CONSTRAINT `note_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `note_ibfk_2` FOREIGN KEY (`knowledge_id`) REFERENCES `knowledge` (`knowledge_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='备注表';

提醒表 (reminder)

CREATE TABLE `reminder` (
  `reminder_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '提醒ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `product_id` int(11) NOT NULL COMMENT '商品ID',
  `reminder_type` varchar(50) NOT NULL COMMENT '提醒类型',
  `reminder_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '提醒时间',
  PRIMARY KEY (`reminder_id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`),
  CONSTRAINT `reminder_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `reminder_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提醒表';

问答表 (question)

CREATE TABLE `question` (
  `question_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '问题ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `question_content` text NOT NULL COMMENT '问题内容',
  `answer_content` text COMMENT '回答内容',
  `answer_time` timestamp NULL DEFAULT NULL COMMENT '回答时间',
  PRIMARY KEY (`question_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `question_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问答表';

区域图表 (map)

CREATE TABLE `map` (
  `map_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '地图ID',
  `hospital_name` varchar(50) NOT NULL COMMENT '医院名称',
  `address` varchar(100) NOT NULL COMMENT '地址',
  `contact_number` varchar(50) NOT NULL COMMENT '联系电话',
  `longitude` decimal(10,6) NOT NULL COMMENT '经度',
  `latitude` decimal(10,6) NOT NULL COMMENT '纬度',
  PRIMARY KEY (`map_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域图表';

SQL 建表语句:

用户表:

CREATE TABLE `user` (
  `user_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '用户ID',
  `username` varchar(50) NOT NULL COMMENT '用户名',
  `password` varchar(50) NOT NULL COMMENT '密码',
  `register_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '注册时间',
  PRIMARY KEY (`user_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='用户表';

食品 & 药品信息表:

CREATE TABLE `product` (
  `product_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '商品ID',
  `product_name` varchar(50) NOT NULL COMMENT '商品名称',
  `product_type` varchar(50) NOT NULL COMMENT '商品类型',
  `expiration_date` date NOT NULL COMMENT '保质期',
  `add_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '添加时间',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  PRIMARY KEY (`product_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `product_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='食品&药品信息表';

救生知识表:

CREATE TABLE `knowledge` (
  `knowledge_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '知识ID',
  `knowledge_title` varchar(50) NOT NULL COMMENT '知识标题',
  `knowledge_content` text NOT NULL COMMENT '知识内容',
  `knowledge_category` varchar(50) NOT NULL COMMENT '知识分类',
  PRIMARY KEY (`knowledge_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='救生知识表';

收藏表:

CREATE TABLE `collection` (
  `collection_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '收藏ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `knowledge_id` int(11) NOT NULL COMMENT '知识ID',
  `collection_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '收藏时间',
  PRIMARY KEY (`collection_id`),
  KEY `user_id` (`user_id`),
  KEY `knowledge_id` (`knowledge_id`),
  CONSTRAINT `collection_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `collection_ibfk_2` FOREIGN KEY (`knowledge_id`) REFERENCES `knowledge` (`knowledge_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='收藏表';

备注表:

CREATE TABLE `note` (
  `note_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '备注ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `knowledge_id` int(11) NOT NULL COMMENT '知识ID',
  `note_content` text NOT NULL COMMENT '备注内容',
  PRIMARY KEY (`note_id`),
  KEY `user_id` (`user_id`),
  KEY `knowledge_id` (`knowledge_id`),
  CONSTRAINT `note_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `note_ibfk_2` FOREIGN KEY (`knowledge_id`) REFERENCES `knowledge` (`knowledge_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='备注表';

提醒表:

CREATE TABLE `reminder` (
  `reminder_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '提醒ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `product_id` int(11) NOT NULL COMMENT '商品ID',
  `reminder_type` varchar(50) NOT NULL COMMENT '提醒类型',
  `reminder_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '提醒时间',
  PRIMARY KEY (`reminder_id`),
  KEY `user_id` (`user_id`),
  KEY `product_id` (`product_id`),
  CONSTRAINT `reminder_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE,
  CONSTRAINT `reminder_ibfk_2` FOREIGN KEY (`product_id`) REFERENCES `product` (`product_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='提醒表';

问答表:

CREATE TABLE `question` (
  `question_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '问题ID',
  `user_id` int(11) NOT NULL COMMENT '用户ID',
  `question_content` text NOT NULL COMMENT '问题内容',
  `answer_content` text COMMENT '回答内容',
  `answer_time` timestamp NULL DEFAULT NULL COMMENT '回答时间',
  PRIMARY KEY (`question_id`),
  KEY `user_id` (`user_id`),
  CONSTRAINT `question_ibfk_1` FOREIGN KEY (`user_id`) REFERENCES `user` (`user_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='问答表';

区域图表:

CREATE TABLE `map` (
  `map_id` int(11) NOT NULL AUTO_INCREMENT COMMENT '地图ID',
  `hospital_name` varchar(50) NOT NULL COMMENT '医院名称',
  `address` varchar(100) NOT NULL COMMENT '地址',
  `contact_number` varchar(50) NOT NULL COMMENT '联系电话',
  `longitude` decimal(10,6) NOT NULL COMMENT '经度',
  `latitude` decimal(10,6) NOT NULL COMMENT '纬度',
  PRIMARY KEY (`map_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='区域图表';

注意:

  • 上述代码仅供参考,实际应用中需要根据具体需求进行调整。
  • 为了提高数据库性能,可以考虑添加索引,并对数据类型进行优化。
  • 建议使用事务来保证数据一致性。
  • 可以根据需求添加额外的表和字段。
  • 可以使用 ORM 框架来简化数据库操作。

希望本文能对您有所帮助。

MySQL 数据库设计:用户管理、食品药品提醒、救生知识、智能问答和区域地图

原文地址: https://www.cveoy.top/t/topic/lVY6 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录