【问题标题】:Databases 2nd normal form and foreign keys数据库第二范式和外键
【发布时间】:2017-08-11 10:11:13
【问题描述】:

我目前正在研究 Microsoft Access 2010 中的数据库结构,我遇到了以下问题:

我有一个名为 tblPC 的表和另一个名为 tblOperators 的表: tblOperators 有以下属性:idOperator(主键,自增号)、idStaff_number(人员编号)和txtOperator_name。

tblPC 有以下属性:idPC(Primary key, autoincrement number), txtModelNumber, numPC_serial_number, idOperator(number)

现在我想连接这两个表:一个 Operator 可以在一台或多台 PC 上操作,但一台 PC 只有一个 Operator,这意味着 tblOperators 和 tblPC 之间存在 1:n-Relation。

我的问题:PC 表中的 idOperator 属性是否正确?恐怕它不会匹配第二范式,因为 idOperator 与主键无关?

提前致谢!!

【问题讨论】:

    标签: mysql ms-access database-design database-normalization


    【解决方案1】:

    将 idOperator 放在 tblPC 上是正确的,因为您将其作为外键添加以表示与 tblOperators 的单一关系。一台PC只有一个操作员。

    idOperator 与主键有什么关系?它代表操作该 PC 的单个操作员。

    希望对您有所帮助。

    【讨论】:

    • 不,不是。解释你为什么这么认为。
    【解决方案2】:

    如果您没有复合键,那么如果您在 1NF 中,那么您将自动在 2NF 中。

    【讨论】:

    • 除非一列被限制为每行中的一列具有相同的值,在这种情况下,该列在功能上依赖于 {},并且可以在部分功能上依赖于单列候选键。 (有时在类型标记列的 SQL 习语中完成子类型的声明性强制执行。当然,那么 2NF 冗余没有问题。)
    猜你喜欢
    • 1970-01-01
    • 2016-10-31
    • 2012-01-11
    • 1970-01-01
    • 2019-08-30
    • 2011-04-15
    • 2012-08-10
    • 2013-01-25
    • 1970-01-01
    相关资源
    最近更新 更多