mysql如何设计影院订票表结构

来源:这里教程网 时间:2026-02-28 20:06:51 作者:

设计一个影院订票系统的表结构,需要考虑影院、影厅、影片、场次、座位、用户和订单等核心实体。下面是一个合理且可扩展的MySQL表结构设计方案。

1. 影院信息表(cinemas)

存储影院基本信息。

id:主键 name:影院名称 address:地址 phone:联系电话 created_at:创建时间

2. 影厅表(halls)

每个影院包含多个影厅。

id:主键 cinema_id:外键,关联影院 name:影厅名称(如“1号厅”) total_seats:总座位数(可选) row_count:行数 col_count:列数

3. 影片表(movies)

存储电影基础信息。

id:主键 title:电影名 duration:时长(分钟) genre:类型(如动作、爱情) release_date:上映日期 director:导演 rating:评分

4. 场次表(showtimes)

定义某部电影在某个影厅的播放时间。

id:主键 movie_id:外键,关联电影 hall_id:外键,关联影厅 start_time:开始时间(datetime) end_time:结束时间(可计算,也可存储) price:票价

5. 座位表(seats)

定义影厅内的每个座位。

id:主键 hall_id:外键,所属影厅 row_num:行号(如A, B, C 或 1, 2, 3) col_num:列号 seat_number:座位编号(如A-5)

6. 订单表(orders)

用户下单记录。

id:主键 user_id:用户ID(可关联用户表) showtime_id:场次ID total_price:订单总价 status:状态(如待支付、已支付、已取消) created_at:下单时间 updated_at:更新时间

7. 订单详情表(order_items)

每个订单包含多个座位,这里记录具体座位与价格。

id:主键 order_id:外键,关联订单 seat_id:外键,关联座位 price:单价(可能因优惠变动)

8. 用户表(users)

简单用户信息。

id:主键 username:用户名 phone:手机号(登录或通知用) created_at:注册时间 关键设计说明: 通过 showtimes 关联 movie、hall,实现排片管理 座位与影厅绑定,避免跨厅混乱 订单拆分为 order 和 order_items,支持一单多座 order_items 中保存 seat_id 和 price,确保历史数据完整 可通过触发器或应用层逻辑控制同一场次同一座位不可重复下单 基本上就这些。这个结构清晰,易于维护,也方便后续加功能,比如优惠券、会员价、选座图展示等。

相关推荐