我目前有两个主键相同的表,我可以让这两个表具有相同的主键吗?
所有的表都是第三范式
Ticket:
-------------------
Ticket_id* PK
Flight_name* FK
Names*
Price
Tax
Number_bags
Travel class:
-------------------
Ticket id * PK
Customer_5star
Customer_normal
Customer_2star
Airmiles
Lounge_discount
ticket_economy
ticket_business
ticket_first
food allowance
drink allowance
数据库中的其余表在下面
乘客:
名称* PK 信用卡号码 信用卡问题 票证编号 * 地址
航类:
航类名称* PK 航类日期 Source_airport_id* FK Dest_airport_id* FK 来源 目的地 飞机编号*
机场:
Source_airport_id* PK Dest_airport_id* PK 来源_机场_国家 Dest_airport_country
飞行员:
飞行员姓名* PK 飞机编号* FK 飞行员级 月 飞行时间 评分
飞机:
Plane_id* PK 飞行员姓名* FK
最佳答案
这不是一个答案,但对于评论来说太长了......
不要听起来刺耳,但您的模型存在一些严重缺陷,您可能应该将其重新设计。
例如,考虑如果乘客购买第二张机票会发生什么。 Passenger 表不应该包含任何对门票的引用。也许一个乘客可以拥有不止一张信用卡?信用卡不应该在他们自己的 table 上吗?这同样适用于地址。
为什么 Airport 表包含真正关于目的地(或路径/行程)的信息?您已经在 Flights 表中记录了行程信息。在我看来,Airport 表应该包含与特定机场有关的信息(例如名称、位置?、IATA 代码等)。
Pilot 只能与一个 Plane 相关联吗?听起来不太可能。飞行员表不应包含有关飞机的信息。
并且 Planes 表不应该保存有关飞行员的信息,因为一架飞机肯定可以连接到多个飞行员。
等等...很可能还有其他问题,但这些指示应该能让您有所思考。
唯一对我来说看起来不错的表格是 Ticket 和 Flight。
关于mysql - 将具有相同主键的两个表规范化为 3NF,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32017001/