Mysql 酒店预订系统的数据库设计

Mysql 酒店预订系统的数据库设计,mysql,database,database-design,Mysql,Database,Database Design,我想为酒店预订系统设计一个数据库结构 我的模式: client ( client_id, lastname ) reservation ( reservation_id, client_id, checkIndate, roomno ) 我的问题在登机手续部分。我已经创建了一个预订;我还需要创建签入表吗?如果是,它的模式应该是什么 顾客可以通过两种方式进入酒店: 通过预订(在到达之前预订房间)或 登记入住(无需预订即可入住酒店) 我如何存储在酒店登记的记录???只

我想为酒店预订系统设计一个数据库结构

我的模式:

client (
  client_id, 
  lastname
)

reservation (
  reservation_id, 
  client_id,
  checkIndate,
  roomno
)
我的问题在登机手续部分。我已经创建了一个预订;我还需要创建签入表吗?如果是,它的模式应该是什么

顾客可以通过两种方式进入酒店:

  • 通过预订(在到达之前预订房间)或
  • 登记入住(无需预订即可入住酒店)

  • 我如何存储在酒店登记的记录???

    只是一些想法。我注意到“roomno”是“reservation”表中的一个字段。我假设您还有一个“room”表,该表以“roomno”作为主键,以及您可能在房间中跟踪的任何其他数据(电话号码、床位号等)

    我要做的是创建一个名为“占用率”的表。此表有三个字段“客户id”、“房间号”和签入时间。“client_id”和“roomno”都是外键(分别指向client表和room表)。为了确保唯一性,我将它们连接在一起以生成主键(毕竟,您可以让一个客户购买两个房间)

    当客户机签出时,您将从“占用率”表中删除该行。您需要将该行归档到另一个表(“history”、“pastStays”…诸如此类)中,并在其中记录“checkout\u time”

    就我建议或假设的变化而言,以下是它们的外观:

    table: Room
    roomno INT
    phone_number INT
    number_of_beds INT
    smoking_allowed BOOLEAN
    
    table: Occupancy
    client_id BIGINT (FK referencing Client) (part of PK)
    roomno INT (FK referencing Room) (part of PK)
    checkin_time DATETIME
    
    table: pastStays
    client_id BIGINT (FK referencing Client) (part of PK)
    roomno INT (FK referencing Room) (part of PK)
    checkin_time DATETIME
    checkout_time DATETIME
    

    只是一些想法。我注意到“roomno”是“reservation”表中的一个字段。我假设您还有一个“room”表,该表以“roomno”作为主键,以及您可能在房间中跟踪的任何其他数据(电话号码、床位号等)

    我要做的是创建一个名为“占用率”的表。此表有三个字段“客户id”、“房间号”和签入时间。“client_id”和“roomno”都是外键(分别指向client表和room表)。为了确保唯一性,我将它们连接在一起以生成主键(毕竟,您可以让一个客户购买两个房间)

    当客户机签出时,您将从“占用率”表中删除该行。您需要将该行归档到另一个表(“history”、“pastStays”…诸如此类)中,并在其中记录“checkout\u time”

    就我建议或假设的变化而言,以下是它们的外观:

    table: Room
    roomno INT
    phone_number INT
    number_of_beds INT
    smoking_allowed BOOLEAN
    
    table: Occupancy
    client_id BIGINT (FK referencing Client) (part of PK)
    roomno INT (FK referencing Room) (part of PK)
    checkin_time DATETIME
    
    table: pastStays
    client_id BIGINT (FK referencing Client) (part of PK)
    roomno INT (FK referencing Room) (part of PK)
    checkin_time DATETIME
    checkout_time DATETIME
    

    我认为最好将预订与入住分离。也可以通过第三方预订系统(分配给他们的一组房间)进行预订。单次预订也可以针对多个客人,但签入是针对单个客人的。此外,您可能需要单独的客房预订表-每个房间一个条目。通常情况下,对于单次入住,客人可能会使用多个房间(时间不同)。因此,将登记入住与入住分离可能会很有用。此外,您可能需要单独保存库存(房间可用性)。这意味着下面的表格

    预订(id、reserverId、fromDate、toDate)-每个预订请求一个条目

    客房预订(id、resId、roomNo、fromDate、toDate)-每间客房每次预订一次

    入住登记(身份证、入住登记、客人登记、登记日期、登记日期)-每位客人一次登记


    占用率(id、checkInId、fromDate、toDate)-指定时间内每个房间一次入住(这类似于房间预订,但这是实际的,房间预订按计划进行)

    我认为最好将预订与入住分离。也可以通过第三方预订系统(分配给他们的一组房间)进行预订。单次预订也可以针对多个客人,但签入是针对单个客人的。此外,您可能需要单独的客房预订表-每个房间一个条目。通常情况下,对于单次入住,客人可能会使用多个房间(时间不同)。因此,将登记入住与入住分离可能会很有用。此外,您可能需要单独保存库存(房间可用性)。这意味着下面的表格

    预订(id、reserverId、fromDate、toDate)-每个预订请求一个条目

    客房预订(id、resId、roomNo、fromDate、toDate)-每间客房每次预订一次

    入住登记(身份证、入住登记、客人登记、登记日期、登记日期)-每位客人一次登记


    占用率(id、checkInId、fromDate、toDate)-指定时间内每个房间一个条目(这类似于房间预订,但这是实际的,房间预订是按计划进行的)

    先生,您有数据库设计的示例吗??plss…先生,我怎么能让占用人处理许多条目,例如:占用人id 1将包含多个客户id和房间号。我该怎么做?或者我的单个预订id(预订id 1)将处理多个入住id。先生,在我的入住表中,我不应该有入住id?@rjtubera这是正确的。入住表上不需要代理钥匙。先生,您能给我一个简单的多房间预订的例子吗?这里是链接:看起来你对数据库非常了解。我希望你能看看。我在那里更准确地说明了我的问题。你有数据库设计的示例吗??plss…先生,我怎么能让占用人处理许多条目,例如:占用人id 1将包含多个客户id和房间号。我该怎么做?或者我的单个预订id(预订id 1)将处理多个入住id。先生,在我的入住表中,我不应该有入住id?@rjtubera这是正确的。入住表上不需要代理钥匙。先生,您能给我一个简单的多房间预订的例子吗?这里是链接:看起来你对数据库非常了解。我希望你能看看。我已经说明了我的问题