使 (3) 复合主键的冗余度降低

Making (3) composite primary key less redundant

提问人:StackerCen 提问时间:10/31/2023 最后编辑:StackerCen 更新时间:10/31/2023 访问量:56

问:

我有一个带有复合键 (3) 的表,如下所示:

sub_product
 - product_id (PK FK)
 - product_type (PK FK)
 - size_id (PK FK)
 - quantity

数量取决于所有 3 个键。

将其减少到仅 2 个组合键是否规范化?

喜欢这个:

sub_product
 - id
 - product_id
 - product_type

inventory
 - sub_product_id (PK FK)
 - size_id (PK FK)
 - quantity

一旦我添加了一个仅依赖于product_id的列(如picture_id),并且product_type规范化是强制性的。(假设我永远不会添加picture_id列。

这样做是规范化的强制性要求,还是取决于个人喜好和用例?

PostgreSQL 设计 数据库规范化 复合主键

评论


答:

0赞 Bill Karwin 10/31/2023 #1

它不被视为规范化。规范化从不要求虚假的伪密钥。

评论

1赞 Bill Karwin 10/31/2023
嘿,“Spurious Pseudokeys”对于车库乐队来说是一个很好的名字。只是说。