首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >达到第三范式

达到第三范式
EN

Stack Overflow用户
提问于 2015-02-26 04:08:47
回答 1查看 104关注 0票数 0

请参考下面的DDL:

代码语言:javascript
运行
复制
CREATE TABLE dbDeletion
  (
     reference       INT IDENTITY PRIMARY KEY,
     reviewreference INT,
     PersonID        INT,
     EventID         INT,
     [delete]        BIT,
     Deleted         BIT,
     Checked         BIT
  )

INSERT INTO dbdeletion
            (reviewreference,
             personid,
             eventid,
             [delete],
             deleted,
             checked)
VALUES      (1,1,4,0,0,0),
            (2,2,4,1,0,1),
            (3,1,4,1,1,0)

我相信这个设计是第二范式,但我想检查一下。

我认为它是第二范式的原因是因为' deleted‘和' checked’属性,即每当一条记录被标记为要删除(dbdeletion.delete=1)时,就会检查该记录是否可以删除。如果可以删除,则将其删除,并将dbdeletion.deleted设置为1,否则将dbdeletion.checked设置为1。

当dbdeletion.deleted设置为1时,它设置如下:

代码语言:javascript
运行
复制
update dbdeletion set deleted=1 where PersonID=@PersonID and EventID=@EventID

当dbdeletion.checked设置为1时,它设置如下:

代码语言:javascript
运行
复制
update dbdeletion set checked=1 where PersonID=@PersonID and EventID=@EventID

上面的两个SQL语句更新1行或多行。因此,我认为这不是第三范式。对吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-26 04:29:18

让我们逐步了解一下这一点。

  1. 所有字段都包含且仅包含一条信息。1NF Passed
  2. The主键为referencereviewreference是候选关键字。PersonIDEventID不是候选键,因为它们不能唯一标识记录。因为候选键是原子的,所以另一个属性不可能依赖于候选键的一部分。2NF Passed
  3. The主键是referencereviewreference是候选键。其余信息都引用这些候选关键字,并且除了这些候选关键字之外,不依赖于任何信息。Passed

3NF

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

https://stackoverflow.com/questions/28728629

复制
相关文章

相似问题

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