MySql表设计:使用大量行或存储每行一个文本字段格式化的信息?

Kev*_*vin 2 php mysql database-design

我试图找到设计我的数据库以组织与事件相关的信息的最佳方法.

我有一个事件表,其中包含有关事件的所有信息,例如,唯一ID,事件标题,场地等.

现在,每个事件都可以有多种故障单类型,故障单的数量和类型将随每个事件而变化.

最好有一个events_tickets表,每个票类型都有一个单独的行,例如

event_id    ticket_type    price
1           standard       20
1           deluxe         40
1           cheap          10
Run Code Online (Sandbox Code Playgroud)

或者将表格式化为更好,以便信息在一行上?

event_id    ticket_information
1           standard:20,deluxe:40,cheap:10
Run Code Online (Sandbox Code Playgroud)

如果我使用第一种方式,每个事件最终会产生10行,当乘以大量事件时,可能会变得非常大,而第二种版本可能会出现数据完整性问题.

Tho*_*son 10

第一个......绝对是.:)尽可能多的数据尽可能分开是最好的方式...它使它更加可用,更容易更改/升级/扩展代码.

实际上我会有3个表:events,event_options和ticket_types

event_options实际上只是事件和ticket_types之间的链接表,并且可以包含每个事件需要保存的其他信息.通过这种方式,它可以更轻松地a)按票证类型搜索和b)添加更多票证类型,因为当您将新票证类型添加到现有事件(或类似的东西)时,您将遇到更多问题.办法.