设计SQL模式的方法,其中实体具有固定数量的关系,但关系数取决于属性

时间:2016-07-21 22:04:04

标签: sql schema relational

在我们的架构中,我们有一个关卡实体和一个pod实体。 pod存储在端口上的级别中。端口是级别的属性。每个级别有不同数量的端口。我们可以根据级别的SKU识别端口数量。我们如何设计模式以考虑每个级别的不同数量的端口,以便检查是否有可用于新pod的端口,以及识别最大级别与最小级别的端口。

示例:

1000级有4个端口,3个被填充 level 4000有12个端口,没有可用的端口。

level table
-----------
level id
port_id1
port_id2
port_id3
port_id(n)


pod table
---------
pod_id
other attributes

在上面的表单中设计它会导致可以为空的列,我们不确定这是否是我们设置的最佳实践。

关系模式: Relational Schema

1 个答案:

答案 0 :(得分:0)

如果我理解你的架构和意图,这就是我接近它的方式。 (抱歉,我的工作中没有漂亮的ERD软件。)

简单地说,您正在创建一个规范化的表来存储Level-to-Port关系,以便它可以处理零到多。您可能希望添加约束以确保唯一性等;但这应该是一般的想法:

enter image description here

根据您最近的澄清评论,您可以避免使用Port表,并将Port_Id上的Levels_Port字段替换为存储您的INT字段12值。