首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在关系数据库设计中,将表连接到连接表的最佳实践是什么?

问在关系数据库设计中,将表连接到连接表的最佳实践是什么?
EN

Stack Overflow用户
提问于 2019-12-11 17:04:50
回答 1查看 428关注 0票数 0

我正在构建一个关系数据库,它将作为一家旅游公司的CRM。我删除了表和属性,以使其尽可能简单。用户将向客户发送报价。

一家酒店可以有多个房间(例如,酒店1可以同时有一个双人间和一个三人间)。

一个房间可以有多个酒店(例如,酒店1和酒店2都可以有一个双人房间)。

假设一位客户有一组6人的房间,用户可以向该客户发送酒店1的报价,其中包括3x双人房或2x三人房。

报价将需要包含酒店和适当的房间类型和房间类型数量。

将表HOTEL_ROOM_JUNCTION连接到报价的最佳实践是什么,因为它们的键是多属性的复合键?

​

​

谢谢

EN

回答 1

Stack Overflow用户

发布于 2019-12-11 17:19:19

因为一个特定的房间只能存在于一个酒店中,所以HOTEL_ROOM_JUNCTION表是多余的。所以房间里的pk hotel_id就是fk,房间里的pk是hotel_id和room_id的拼接密钥。

如果一个报价可以由多个房间组成,您需要在报价和房间之间使用fk quote_id、room_id和hotel_id建立连接表,这三个将是该表中的pk。(根据经验,这种表通常需要一个时间戳)。

(作为附注;我将这些表命名为报价、房间和酒店,因为它们包含许多)

编辑:我有点怀念这个问题..为了让我的模型像OP所希望的那样,我需要添加带有pk room_type_id的ROOM_TYPES,它将是房间中的fk (非空),但不是pk的一部分。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/59282114

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档