我为房间租赁创建了一个ER图,我有一些问题

时间:2016-02-04 15:47:27

标签: sql entity-relationship

LINK TO ER DIAGRAM ER Diagram

这个房间的主人将房间租给旅游者和访问该地区几天的人,需要一个地方花几天时间。每位客人都需要预订,并且只有一间客房可供使用。 所以我想出了这个实体关系图,表明所有实体和关系。

问题 我想知道预订实体是否需要两个外键? 此外,ER图的整体设计是否正确到可接受的水平,包括键和属性?

1 个答案:

答案 0 :(得分:0)

您的模型有一些问题:

  • 每位业主只能拥有一个房间。在现实世界中,业主可以拥有许多房间。即使你现在想要一种双向关系,我建议你把这种关系从所有者表中删除,以防你以后想要改变它。

  • 每个房间只有一个客户。如果是现实世界,房间可以在不同的预订期间容纳不同的客户。从Room表中删除与客户的关系。

  • 每位客户只有一次预订。在现实世界中,客户可以随着时间的推移进行不同的预订。从客户表中删除与预订的关系。

  • Booking_ID听起来像预订的代理键。为什么客户端是主键的一部分?我认为它应该是一个非素数属性,并表明它将在图中已经描述的外键约束中。

  • 预订对Room_ID有外键约束,但您的图表并未对其进行描述。

  • Payment表中的Payment_ID位于外键约束中,但听起来像是该表的代理键。我认为预订表中的Payment_ID以及付款中的Booking_ID应该是受约束的。

  • 付款表的目的是什么?它看起来多余,即使您不能将这些功能依赖项移动到Bookings表中,然后可以消除Payment_ID。

  • 如果从Booking表中删除Payment_ID,您仍然有两个键在外键约束中。