我正在开发一个项目,人们可以接收有关足球比赛的信息(航类、酒店、景点、体育场)。该网站还应该包含约会列表(我的航类何时何地,我的酒店在哪里,我什么时候必须去体育场......)在我看来,如果您引用航类,那将非常酷,此约会表中的酒店等,向用户提供有关此约会的一些附加信息
一般来说,我可以做一些事情
appointmentID | appointmentDate | appointmentDuration | flightID | hotelID | stadiumID
并用 NULL 填充不需要的值。但我认为这不是一个好主意。
我也可以这样存储它们:
appointmentID | appointmentDate | appointmentDuration | appointmentType | appointmentTypeID
并用表的字符串(酒店,航类,...)填充appointmentType,并用appointmentType的ID填充appointmentTypeID。但这种方式感觉不太好。
所以我的问题是:在数据库中保存这些值的最佳方法是什么?
编辑:我知道目标是标准化表格。一般来说,我知道我必须将哪些数据放入单独的表中。我的问题是在这种特殊情况下我该怎么做
最佳答案
第一种方式似乎是更好的选择。
我会有以下内容,但我会添加一个引用表
预约表 应用程序ID app_f_id(引用航类表的id) app_h_id(引用酒店表的id) app_s_id(引用Stadium表的id) app_ref_table(这将包含一个唯一的生成引用,因为使用该 id 将来会出现问题,因为该 id 可能会延伸到数百万...)
航类表 f_id f_载体 f_日期_预订 f_date_confirmed
酒店表 h_id h_描述 h_guests
体育场_球 table s_id s_描述
每年引用表都会以顺序 1 或您喜欢的顺序开始。我认为这是表结构的巧妙方法。 引用表 r_id r_year r_序列 r_app_id(生成引用号的最后一个 ID)
关于MySQL:在一张表中引用多个表ID,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39912865/