基于 Gin 的会议室预约 API 设计 (一)

基于 Gin 的会议室预约 API 设计

基本功能设计
  • 设计分为手机mobile端和电脑pc端
  • 在会议室张贴二维码,手机扫描二维码即可加入手机预定页面
  • 手机端只能进行会议室的预约和查看个人预约情况
  • 电脑端即可以预约,也可以登陆管理员账号,管理预约请求
  • 只能在整点半点进行预约,每次会议最小时间为半小时,最大为两小时

数据库设计
  • 一个建立四张表(这里不建立用户表,大家根据需求可以自己建立)
    • 预定表 books
  CREATE TABLE `meeting_books` (
     `id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '预定id',
     `user` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '用户姓名',
     `phone` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '用户手机号',
     `email` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '用户邮箱',
     `topic` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '会议主题',
     `room_id` int(11) NOT NULL COMMENT '会议室编号',
     `from_type` varchar(30) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '订单来源',
     `day` date NOT NULL COMMENT '会议日期',
     `start` time DEFAULT NULL COMMENT '会议开始时间',
     `end` time DEFAULT NULL COMMENT '会议结束时间',
     `status` tinyint(4) NOT NULL DEFAULT '0' COMMENT '预定状态',
     `remark` varchar(50) CHARACTER SET utf8 COLLATE utf8_unicode_ci DEFAULT NULL COMMENT '备注',
     `created_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP COMMENT '预定创建时间',
     `updated_at` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP COMMENT '预定修改时间',
     PRIMARY KEY (`id`)
    ) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='预定会议室表'

  • 已占用时间表 used_times (如用户选择 08:00—09:00 则插入 08:00 08:30 ps:08:00 代表的是时间段08:00~08:30)
CREATE TABLE `used_times` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '已占用时间id',
`day` date NOT NULL COMMENT '占用日期',
`time` time NOT NULL COMMENT '占用时间',
`book_id` int(10) NOT NULL COMMENT '预定id',
`room_id` int(10) NOT NULL COMMENT '会议室id',
PRIMARY KEY (`id`)
) ENGINE=InnoDB  DEFAULT CHARSET=utf8 COMMENT='时间占用表'
  • 可选择时间表 select_times (不能24小时都可可以开会,只能在规定的范围内选择)
CREATE TABLE `meeting_select_times` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '可预定时间id',
`time` time NOT NULL COMMENT '可预定时间',
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=27 DEFAULT CHARSET=utf8 COMMENT='可预定时间表'

  • 会议室表
CREATE TABLE `meeting_rooms` (
`id` int(10) unsigned NOT NULL AUTO_INCREMENT COMMENT '会议室id',
`name` varchar(20) CHARACTER SET utf8 COLLATE utf8_unicode_ci NOT NULL COMMENT '会议室名称',
`size` tinyint(2) NOT NULL COMMENT '会议室容纳人数',
PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='会议室表'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章