gpt4 book ai didi

MySql电影预约系统设计

转载 作者:行者123 更新时间:2023-11-30 01:25:55 26 4
gpt4 key购买 nike

我有以下用于电影预订系统的伪 MySQL:

桌面电影:

    id int auto_increment not null,
name varchar(100) not null,
.....

表电影时间表:

    movie_id foreign key refers to Movie,
sched_id int auto increment,
date & time,
max_size

表 MovieSchedSignUp:

    sched_id,
user_id

每个电影时间表都有一个 max_size 的可以注册的用户数量。为了注册用户,我在 MovieSchedSignUp 中插入一行。

问题是:如何在 MovieSchedSignUp 中插入一行,同时确保时间表不会“超额预订”(注册 <= max_size)

具体来说,要为用户注册时间表,我应该使用什么查询,以及如何检查时间表是否已满(这样我就可以告诉用户注册是否成功)?请注意,这些需要某种原子操作,可能是事务。

最有效的方法是什么?

最佳答案

SQL 的粗略想法:-

INSERT INTO Table MovieSchedSignUp (sched_id, user_id)
SELECT '$move_sched_id', '$user_id'
FROM
(
SELECT sched_id, COUNT(*) AS BookingCount
FROM MovieSchedSignUp
WHERE sched_id = '$move_sched_id'
GROUP BY sched_id
HAVING BookingCount < $max_size
)

根据选择插入一条记录。 select 返回 2 个固定值,如果预订数量小于最大预订数量,则从返回日程 id 的子查询中进行选择。

关于MySql电影预约系统设计,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17988257/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com