【发布时间】:2021-04-01 08:01:38
【问题描述】:
我一直在寻找类似案例的解决方案。我有一个约会应用程序,用户可以根据他们的可用时间段预订医生。我创建了一个时间段表和预订表。 不确定的是,如果医生的时间段被占用特定日期,我如何确保其他用户不会在同一日期选择相同的时间段。
CREATE TABLE `time_slots` (
`slot_id` int NOT NULL AUTO_INCREMENT,
`package_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`dr_token` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`start_time` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`end_time` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`weekday` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`s_time_key` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`created_at` datetime(0) NULL DEFAULT NULL,
`updated_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),
PRIMARY KEY (`slot_id`) USING BTREE
)
CREATE TABLE `appointments` (
`appointment_id` int NOT NULL AUTO_INCREMENT,
`patient_token` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`doctor_token` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`time_slot` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL,
`start_time` datetime(0) NULL DEFAULT NULL,
`end_time` datetime(0) NULL DEFAULT NULL,
`time_slot_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`status` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`auth_user` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`confirmed` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`invoice_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`created_at` datetime(0) NULL DEFAULT NULL,
`updated_at` datetime(0) NULL DEFAULT NULL ON UPDATE CURRENT_TIMESTAMP(0),
PRIMARY KEY (`appointment_id`) USING BTREE
)
【问题讨论】:
-
为什么约会中的time_slot_id是varchar而time_slots表中是int?
-
检查该时间段的条目是否已经存在,如果存在则不存储。
-
@Joe Teras 感谢您指出这一点
标签: mysql