0
您可以在關係窗口的外鍵選項卡中取消選中「強制性」選項,但該選項並未完全捕獲不相交關係的含義,即多重關係之間的無關關係。如何模擬MySQL Workbench中兩個關係之間的不相交關係?
您可以在關係窗口的外鍵選項卡中取消選中「強制性」選項,但該選項並未完全捕獲不相交關係的含義,即多重關係之間的無關關係。如何模擬MySQL Workbench中兩個關係之間的不相交關係?
你指的是外鍵的強制性屬性,這讓我相信你要麼誤解了不相交關係的含義,要麼在錯誤的「方向」上用關係來實現它。
比方說,我們要實現以下模式:
相應的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導致相同的效果。