【问题标题】:Entity Relationship Diagram - Hotel实体关系图-酒店
【发布时间】:2018-10-12 22:15:49
【问题描述】:

我正在为一家酒店创建 ERD,并且我是关系数据库的新手。我正在努力解决关系以及链接实体的位置。到目前为止,这是我的粗略结论:Link to image for ERD

我想到的问题是:

客房服务如何通过客房计费? 我需要可用性实体吗? 我应该将房间或预订链接到账单而不是客人吗? 酒吧服务会直接提供收据或账单吗? 我应该将 roomType 添加到预订实体吗?

这是给出的描述:

对系统要求的初步调查得出以下事实:

  • 房间编号从 101 到 359(虽然一共只有 20 间,但都超过 3 层)
  • 部分房间可供轮椅使用者使用,而其他房间则不适合
  • 房间分为三种类型:
    1. 单身 - 每晚收费 40 英镑
    2. 双人间 - 每晚收费 52 英镑
    3. 套房(适合四口之家)– 每晚收费 95 英镑 •

按标准费率向客户收取房间费用,但房间内的人数会记录在案

客户被赋予一个唯一的“客户 ID”,他们的信息目前保存在卡片索引中

客户可以订购特定物品,这些物品可以作为额外费用计入他们的房间。这些按以下标准收费:

  • 传统早餐 - 收费 10 英镑
  • 欧陆式早餐 - 收费 5 英镑
  • 晚餐 - 每人收费 25 英镑
  • 各种酒吧小吃 - 收费 15 英镑
  • 客房服务餐 - 收费 30 英镑 •
    顾客可以从酒吧购买其他物品,例如饮料,但这些都是单独支付的,不计入顾客的房间。 阳光海岸酒店目前使用预印文具,前台工作人员在客人离开时为客人开具发票。

【问题讨论】:

  • 客房服务如何加入客房?
  • 你有要求的描述吗?它的措辞将有助于理解需求。 “for a hotel”是相当模糊的,可以去很多方向。
  • 我已经添加了给出的描述要求。在描述中它说客房服务是向房间收费的,但我会向客人说,所以我不知道
  • @Nic3500 与要求相比,您认为它看起来还不错

标签: sql database entity entity-relationship erd


【解决方案1】:

我注意到的几件事:

  • FloorNumber 设置了两次。在房间类型和房间中。不应在 roomType 中设置。
  • 为什么要把 BookingID FK 放在房间里?预订条目通过空房表链接到房间。预订不是房间的属性。
  • roomType 不需要 RoomNumber FK。房间作为一种类型。该类型没有房间。
  • 所以对于你的 FK,问问你自己哪个对象有哪个对象?不应同时设置它们。

您的大部分 ERD 都是有道理的,尽管 roomServices 不在正确的位置。如果您像以前那样直接将其与房间相关联,您怎么知道那个房间的那个日期的客人 1 点了东西?客房服务 应该与账单相关联,就像您为 barServices 所做的那样。这样,当您制作账单时,您就有:

  • 预订详情
  • 酒吧服务
  • 客房服务

我将使用房间 FK 构建 roomServices,并通过 barServices 之类的收据将其链接到帐单。也不要忘记你的 roomServices 有一个类型,有不同的价格。所以另一个表 roomServicesType。 roomService 描述了一种服务类型的一个订单。

我的方法是:

  • 定义我的对象(即表格)。这些必须代表问题中的 1 个,并且仅代表 1 个元素。
  • 定义我的链接(即关系)。根据关系的类型(1-1、1-n、m-n),我使用 FK 或链接表(我不记得计算机科学的官方名称,但就像你对可用性所做的那样)。
  • 然后我定义我的对象具有的每个属性(即表中的行)。这是我确保一个属性永远不会在超过 1 个表中定义的时候。
  • 然后我在脑海中尝试了几个查询。比如:客人要走了,我怎么知道他必须付什么费用?客人点了晚餐,我要记录吗? ...

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-02-16
    • 2017-05-23
    • 1970-01-01
    相关资源
    最近更新 更多