ICode9

精准搜索请尝试: 精确搜索
首页 > 数据库> 文章详细

mysql – 活动预订系统:数据库设计

2019-08-06 20:17:07  阅读:253  来源: 互联网

标签:mysql database-design schema


我想做一个活动(音乐会,剧院,电影院,…)预订网站

场地表:

-ID
-name
-address

阶段表:

-ID
-venue_id
-title
-seats

-seats是json并包含座位行和列

>第一个问题是哪个更好?
为每个舞台的座位创建另一个表格,还是为任何座位属性字段创建一列?

然后我需要一个放映时间表来设置每个座位的价格和event_id.

>我想知道,如果有最佳方法来创建showtime表而不是为每个座位创建一行?

解决方法:

在设计新数据库时,务必事先了解它的使用方法.当然,很难完全了解您的数据库将如何使用,因为您可能正在进行原型设计,您的业务需求可能会随着时间的推移而发生变化等.

我发现为事务处理系统设计关系数据库的一个好的经验法则是假设系统跟踪的每个有形的东西都有自己的表.

根据您的情况考虑以下ERD:

ERD

在您的情况下,您有每个都有一个或多个STAGE的VENUE.每个阶段都有很多座位.但是,请注意您要跟踪座位的PRICE,因此为了保持定价数据的合理性,您的座位将被安排到SECTION中.价格设置在部门级别而不是单个座位级别.价格还取决于展示时间(EVENT),因为您可能在一周中的不同日期或一天中的不同时间具有不同的价格(例如,星期日的日场比星期六晚上便宜).

您有多个显示时间,但是有多个显示时间的事件可能会有很多共同点,因此您需要一个EVENT表和一个子SHOW表.这使您可以以第三范式(3NF)保持显示和事件(显示时间)信息,这始终是从事务系统数据库开始的好地方.

假设您还想跟踪每个座位中的实际位置,您还需要在数据库中拥有TICKET和CUSTOMER.

为了解决有关如何跟踪座位,行或列的具体问题,我强烈建议您将座位跟踪为行.像MySQL这样的关系数据库管理系统可以轻松处理数据行.如果您将座位作为列处理,您可能需要为每个阶段使用不同的座位表,因为每个座位的座位都不同.这会使你的查询非常笨拙和复杂.如果要为数据使用关系数据库,则使用关系方式将事物放入行中,并将事物放入列中.您的代码将更简单,您的生活将会更好.

标签:mysql,database-design,schema
来源: https://codeday.me/bug/20190806/1602837.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有