我想知道是否有可能在酒店和房间之间建立多对多的关系。 酒店有很多房间,但房间不属于很多酒店。 我是数据库新手,无法弄明白。
答案 0 :(得分:0)
在要相互关联的两个主表之间使用一个表完成多对多关系。 一个酒店表,一个房间表,在它们之间有一个叫做 HotelRoom 的表(虽然不是一个完美的命名)。
加入表 HotelRoom 包含其加入的每个主键的字段(在本例中为 HotelId 和 RoomId )。
所以,现在当你想要一个单独的房间与几个不同的酒店相关时(或者你会得出结论,这不是你想要的)你将主钥匙存放到房间和主要钥匙到酒店 HotelRoom 表。
然后,当您希望另一家酒店与另一家酒店相关的确切房间相关时,您将在 HotelRoom 表中存储另一行,其中包含房间的相同主键以及额外的酒店主键。
这可能是你想要的,但我怀疑它不是你想要的。我可以看到的一个场景是,如果您希望这是历史数据,而不是酒店在不同时间(特别是远期)的特定房间的所有者。
如果您只是想给酒店客人带来惊喜和烦恼,那么这也是一个热闹的应用程序。 :)