gpt4 book ai didi

MySQL外键依赖解析

转载 作者:行者123 更新时间:2023-11-29 00:52:05 24 4
gpt4 key购买 nike

我正在为一个关系数据库建模,其中使用以下模式来描述 2 个表:ERD Model .

指定的规则是:

  1. 一个办公室有一个经理
  2. 每个员工都被分配到一个办公室

为了对此建模,我使用 MySQL Workbench 创建了一个 ERD,它提供了以下 DDL .

我遇到的问题是,为了强制办公室必须有经理,office 表中的外键不可为空。同样,员工表中代表他们工作的办公室的外键对于每个员工都是必需的,因此不可为空。这在模型中对我来说很有意义,但是对于实现来说,它不可能插入数据,因为每个数据都依赖于表中元组的存在。

我能想到的唯一答案是使键可以为空,这样一个键可以在没有另一个键的情况下暂时存在。

这是解决问题的正确方法吗?数据库最终将规范化为 3NF 或者 BCNF。

最佳答案

问题是您试图记录办公室和员工之间的关系两次。一次进入办公室记录,一次进入员工记录。您应该只在一个地方记录关系。通常这是在具有两列的交叉引用表中完成的:Office_ID 和 Staff_ID。但是跳过第三个表而只在其中一个表中记录关系也很常见。

在这种情况下,您可以通过从 Staff 表中删除 Office 字段和外键来解决问题。您将能够根据需要创建任意数量的员工记录。然后,当您创建 Office 记录时,您将能够将其中一名员工分配给该 Office。

关于MySQL外键依赖解析,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8087570/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com