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

way to design a SQL schema where entities have fixed number of relationships but Number of Relationships depend on attributes

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

示例:

级别 1000 有 4 个端口,其中三个已填充。
级别 4000 有 12 个端口并且 none 可用。

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


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

以上面的形式设计它会导致可以为空的列,我们不确定这是否是给定我们的设置的最佳做法。

关系模式:

如果我正确理解了您的架构和意图,这就是我处理它的方式。 (对不起,我工作时没有漂亮的 ERD 软件。)

简单地说,您正在创建一个规范化的 table 来存储级别到端口的关系,以便它可以处理零对多。您可能希望添加约束以确保唯一性等;但这应该是总体思路:

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