首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >规范化和3NF

规范化和3NF
EN

Stack Overflow用户
提问于 2016-04-25 10:46:30
回答 1查看 74关注 0票数 0

假设我有这张表,其中Pizza代码是主键

这张桌子是3NF的吗?如果我改了比萨的名字,价格肯定会受到影响。但与此同时,我看到这种依赖是孤立的,所以我的问题是:

  1. 在当前的数据结构中,名称/价格的依赖被隔离在一个单独的表中,我们可以说这个表在3NF中吗?
  2. 如果两个非键表列是较大的“订单”表的一部分,那么Orders表就不会在3NF中,对吗?
EN

回答 1

Stack Overflow用户

发布于 2016-04-25 16:49:00

您应该问问自己,表中PizzaCode的含义是什么:

  1. 这仅仅是一种缩写名称的方法(从当前的值来看)?换句话说,改变比萨饼的名称(和价格)的操作是否可以被认为是插入了一种新的比萨饼而不是旧的比萨饼?
  2. 它用于唯一地标识某个对象(同一对象),该对象有时会更改名称和/或价格?

在第一种情况下,只需去掉它,并使用PizzaName作为主键(在Order表中作为外键)。更改比萨饼名称及其价格的操作将等同于添加新比萨饼和删除旧比萨饼(如果希望跟踪所有售出的比萨饼,则只需使用可用/不可用的属性标记旧比萨饼)。

在第二种情况下,按表顺序使用PizzaCode作为主键和外键。

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

https://stackoverflow.com/questions/36838366

复制
相关文章

相似问题

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