我正在尝试为飞机租赁公司创建一个假设数据库,我有点担心我应该为员工创建多少个表......以下是该问题的基本介绍:
该公司雇用了许多员工,员工由机组成员和非机组成员组成,机组成员是飞行员,空乘人员,飞行工程师和负责人员,非机组成员可以是管理人员,接待员等。并非所有员工都是船员。
所有船员都需要经常进行体检,并且需要存储这些测试的记录。所有机组成员还必须拥有许可证和证书,需要存储这些许可证和认证的详细信息。
预订航班时,根据飞机类型和预订类型,至少有一名机组人员被分配到预订中。因此,如果它是一架小型飞机,那么一名飞行员就是唯一的机组人员。然而,如果它是一架喷气式飞机,那么两名飞行员和空乘人员组成了机组人员。
现在我的问题是,我应该创建一个包含船员和非船员的员工表,还有另外两个表,用于许可证/认证和医疗测试? (将员工表与许可证/认证和医学测试表相关联)
或者
我是否应该为所有员工创建一个基本表格,并为机组成员创建一个单独的表格,将许可证/认证和医疗测试表分配给机组成员表?通过这种方式,机组成员与非机组成员分开,因此机组成员与医疗和认证表的关系可以与整个员工表分开。我在这里担心数据的两面性。
非常感谢提前!
答案 0 :(得分:1)
"我应该"如果没有很好地理解你的模型以及你打算如何使用它,这是一个无法真正回答的问题。所以第一个问题是为什么你不能简单地实现图中所示的模型?该图表显示了第一个选项。但是,依赖表的意图/用法相当模糊。
我将补充说,您已经过度简化了与航班相关的架构。对于特定航班,您将拥有一个"船员"由特定成员组成。通常,这将由多名员工(飞行员,副驾驶员等)组成。在进入许可问题时,飞行员可以在飞行中充当副驾驶。我不明白为什么Employee_ID在预订中 - 但也许您打算在那里使用不同的用法。
我建议您选择一种方法并查看它的用途。或两者都做。您将通过联合使用代表相同模型的不同模式来了解更多信息。