基於 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='會議室表'
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章