首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >乘客表中的大量冗余

乘客表中的大量冗余
EN

Stack Overflow用户
提问于 2013-10-07 09:05:07
回答 4查看 250关注 0票数 0

我正在做一个与订票有关的项目。我可以存储旅客资料,如姓名、年龄、性别以及机票号码。但问题是,如果另一张机票是为同一名乘客预订的,我将不得不重新输入相同的乘客数据&只是机票ID会有所不同。

代码语言:javascript
复制
mysql> desc passenger;
+-------+-------------+------+-----+---------+-------+
| Field | Type        | Null | Key | Default | Extra |
+-------+-------------+------+-----+---------+-------+
| Name  | varchar(32) | NO   |     | NULL    |       |
| Age   | int(11)     | NO   |     | NULL    |       |
| sex   | char(1)     | NO   |     | NULL    |       |
| PNR   | varchar(32) | YES  | MUL | NULL    |       |
+-------+-------------+------+-----+---------+-------+

有谁能告诉我怎样才能尽量减少这种冗余呢?

任何链接、参考、线索或想法都是值得赞赏的。谢谢

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-10-07 09:10:04

您可以存储一个乘客实体,包括姓名/年龄/性别等(在乘客实体表中),然后您的旅客订票表将只包含乘客实体ids (整数、GUID等)。这是一种正常化的形式。

然而,这可能是一个过于优化。您是否真的这样做取决于您有多少重复的实体等等,以及它们对您来说是否是一个真正的绩效/管理问题。你是否希望为乘客存储更多的数据(地址、飞行常客信息等)。

票数 1
EN

Stack Overflow用户

发布于 2013-10-07 09:09:49

在mysql这样的关系数据库中,乘客数据和票务数据当然应该放在单独的表中。因此,有一个乘客表,其中包括个人详细信息,如姓名,DateOfBirth,地址,电话等,然后有一个机票表,有ticketNumber,日期等,以及passengerId (经典的多到一个关系)。

票数 0
EN

Stack Overflow用户

发布于 2013-10-07 09:17:32

乘客参数应属于乘客表。并且票证参数应该属于票证表。

乘客和车票之间的连接只是一个外键,如"fk_passenger“与id_passenger的连接。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19220752

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档