Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mysql 引用行子集的SQL表_Mysql_Sql_Foreign Keys - Fatal编程技术网

Mysql 引用行子集的SQL表

Mysql 引用行子集的SQL表,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,假设我有一张桌子,上面有一些材料:金、水、冰。 每种材料可以是:固体、液体 我想添加一个名为Shape的新表,它显然只包含固体材料的信息(液体没有确定的形状) 我得出的结论是添加这个表,并用液体的空值填充它 但有没有更干净的解决方案?(一个形状表,其行仅表示实体)。我不理解您的问题。您只需添加: create table shapes ( shape_id int auto_increment primary key, material_id int, . . .

假设我有一张桌子,上面有一些材料:金、水、冰。 每种材料可以是:固体、液体

我想添加一个名为Shape的新表,它显然只包含固体材料的信息(液体没有确定的形状)

我得出的结论是添加这个表,并用液体的空值填充它


但有没有更干净的解决方案?(一个形状表,其行仅表示实体)。

我不理解您的问题。您只需添加:

create table shapes (
    shape_id int auto_increment primary key,
    material_id int,
    . . . 
    foreign key (material_id) references materials (material_id)
);
对于实体,只能在
形状中添加行,因为它(通常)不适用于其他类型的实体。此数据模型不强制执行该约束。这是可能的,但我不知道是否有必要强制执行。至于你的例子,关于玻璃是液体还是固体,存在着有意义的争论