Database 这是什么类型的实体?

Database 这是什么类型的实体?,database,database-design,Database,Database Design,所以,我真的很困惑,试图把这个给3NF。这是正确的吗?如果是的话,你会怎么称呼这个实体 如果我将描述留在表中,它将依赖于DonutName,因此我必须将其移动到自己的表中,以将其放入3NF中。对吗 谢谢你的帮助,我只是想确保我走上了正确的道路。:) *编辑 数据示例: 在我看来,您的数据是 Name Description UnitPrice 基于您的描述的核心假设:Name是一个候选者键,因为没有两个甜甜圈具有相同的名称 如果描述在表中也是唯一的,那么它也是一个候选键。如果它不是唯一的,那

所以,我真的很困惑,试图把这个给3NF。这是正确的吗?如果是的话,你会怎么称呼这个实体

如果我将描述留在表中,它将依赖于DonutName,因此我必须将其移动到自己的表中,以将其放入3NF中。对吗

谢谢你的帮助,我只是想确保我走上了正确的道路。:)

*编辑

数据示例:
在我看来,您的数据是

Name
Description
UnitPrice
基于您的描述的核心假设:Name是一个候选者键,因为没有两个甜甜圈具有相同的名称

如果描述在表中也是唯一的,那么它也是一个候选键。如果它不是唯一的,那么它只是一个属性,与单价相同(即表中的两行可能包含相同的值)

当您有两个候选关键点时,您可以选择一个并使其成为主键,而所有其他关键点都是备用关键点。这本身并不违反第三范式

下一个假设:DonutId是一个标识列,它或其他一些设备为每一行分配一个(本质上)随机整数值。这使得它成为一个代理键——它是唯一的,可以作为候选键(并“提升”为主键),但数据本身没有内在价值或意义(例如,甜甜圈37对甜甜圈的世界毫无意义)。这将为您提供三个候选键,紧接着是一个主键和两个备用键。在我看来,这仍然是第三种常态。(其他列将是自然键


现在,就学术界而言,我可能错了,所有这些候选密钥可能需要进一步细分为BCNF、第四范式、第五范式等等……但是考虑到建模数据的总体简单性,我不这么认为。

为什么描述取决于姓名而不是ID?同意。你能提供数据的样本吗?最好是“示例”,我很抱歉,我知道混淆的地方了。例如,假设DonutID“1”是带有“巧克力甜甜圈”描述的“巧克力”。DonutID“2”是“Spreaded”,带有“Spreaded Donut”的描述。因此,DonutID、Description和DonutName始终是唯一的,并且可能是每行的键。除了垂直分区之外,我看不到在另一个表中移动描述的有效原因,但这是一个性能问题,而不是规范化问题。如果可以为不同的名称添加重复的描述,可以在它们之间添加一个新的描述表和一个链接表,但对于给定的示例数据,一个表是合适的。@Bowhuntr11-我已经有一段时间没有学过这一点了,但是如果我回忆正确的话,DonutID在规范化数据时也不应该存在。规范化之后,您应该只拥有自然主键。这不是你问题的答案(因为我真的不知道),但如果这是考试,一定要按照书上说的做。谢谢你的解释!“任务”中的额外数据是针对客户的。说明书上写着“拿着这张桌子,做2NF。”所以我把顾客拿出来放在他自己的桌子上。然后说明书上写着“现在做3NF”。所以我想我会在这里说,表已经有资格为3NF。我希望它能起作用,如果不行,我知道我应该先去哪里重新提交:)再次感谢!