在MySQL数据库中使用null。三个外键中的一个必须不为空。

时间:2011-07-28 14:19:33

标签: mysql database-design null foreign-key-relationship

我的问题是我必须创建具有外键的表,并且三个外键中的一个必须是NOT NULL并且rest必须为NULL。 MySQL中有什么东西可以解决它吗? 迈克尔。

2 个答案:

答案 0 :(得分:1)

避免可以为空的外键 - 它们有许多问题和缺点。将这些列放在单独的表中通常更容易也更好,这样在没有值时就不必为它们创建空值。这应该是默认方法:每个不同案例的普通表格,除非你有一些特殊的理由将这三个列合并到一个表中。

答案 1 :(得分:0)

FOREIGN KEY Constraints示例:

CREATE TABLE parent 
(
    id INT NOT NULL, PRIMARY KEY (id)
) ENGINE=INNODB;

CREATE TABLE child 
(
    id INT, parent_id INT,
    INDEX par_ind (parent_id),
    FOREIGN KEY (parent_id) REFERENCES parent(id)

) ENGINE=INNODB;