gpt4 book ai didi

mysql - 如何在 MySQL Workbench 中对两个关系之间的不相交关系进行建模?

转载 作者:行者123 更新时间:2023-11-29 13:42:04 25 4
gpt4 key购买 nike

您可以选择在关系窗口的外键选项卡中取消选中“强制”,但这并不能完全捕获不相交关系的含义,即多个关系之间的“非此即彼”关系。

最佳答案

您提到外键的强制属性让我相信您要么误解了不相交关系的含义,要么以错误的“方向”实现了关系。

假设我们要实现以下架构:

  • 类(class):职员
  • 级别:永久(专业职员)
  • 类别:临时(专业职员)
  • 员工可以是永久雇员临时承包商

相应的 EER 模式是(MySQL 语法):

CREATE TABLE staff_member (
id INT PRIMARY KEY,
name VARCHAR(20) NOT NULL
);

CREATE TABLE permanent (
id INT PRIMARY KEY,
next_appraisal DATETIME NOT NULL,
FOREIGN KEY (id) REFERENCES staff_member(id)
);

CREATE TABLE temporary (
id INT PRIMARY KEY,
contract_end DATETIME NOT NULL,
FOREIGN KEY (id) REFERENCES staff_member(id)
);

请注意,外键是专用实体父实体(id是主键,它也始终是强制的定义)。

这仍然没有回答你的问题。如何对这种关系的不相交属性进行建模?您无法轻松做到这一点(顺便说一句,您也无法对特化完成进行建模)。

许多 RDBMS 支持使用 CHECK约束以强制执行这些额外条件,但 MySQL 不这样做(注意,MySQL 解析器接受语法,但声明被忽略)。然而,simple workarounds exist会产生相同的效果。

关于mysql - 如何在 MySQL Workbench 中对两个关系之间的不相交关系进行建模?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17949386/

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