dee*_*lue 2 normalization database-design
我希望在特定情况下命名。当您删除以逗号分隔的列并将其拆分为新表中的单独行时,这种类型的表称为什么?
在下面的例子中,我可以保留FavoriteFoods
在最上面的桌子(阿尔伯特爱因斯坦会有“苹果派,汤”),但我希望每种食物都有自己的行。
第二个表是未标准化的“交叉连接”表吗?
如果你知道这个名字,请分享。知道名字后,我会做更多的研究。
删除重复组(您的逗号分隔值)并将此数据移动到另一个表中,其中每个值都是该表中的一行,称为normalization。特别是,您正在从 0 范式 (0NF) 移动到更高的范式(1NF 或更高,取决于保留的功能依赖项)。
在您的具体示例中,一旦您将最喜欢的食物分成子表,您可能处于 1NF 或 3NF,具体取决于您是否还有食物类型的“主表”。
记录最喜欢的食物的新子表可能被视为交叉表,特别是如果您还有所有食物的主表,每种食物都列出一个记录。这是在关系数据库中实现多对多关系的典型方式。
如果您有这个食物类型主表,您将处于 3NF。如果您不这样做,您的子表可能不会被视为 3NF,而只是 1NF,因为食物列表可能会更新异常并可能删除异常- 取决于您的系统如何看待食物本身,而与它们与人的关系无关。