Mysql 引用行子集的SQL表
假设我有一张桌子,上面有一些材料:金、水、冰。 每种材料可以是:固体、液体 我想添加一个名为Shape的新表,它显然只包含固体材料的信息(液体没有确定的形状) 我得出的结论是添加这个表,并用液体的空值填充它Mysql 引用行子集的SQL表,mysql,sql,foreign-keys,Mysql,Sql,Foreign Keys,假设我有一张桌子,上面有一些材料:金、水、冰。 每种材料可以是:固体、液体 我想添加一个名为Shape的新表,它显然只包含固体材料的信息(液体没有确定的形状) 我得出的结论是添加这个表,并用液体的空值填充它 但有没有更干净的解决方案?(一个形状表,其行仅表示实体)。我不理解您的问题。您只需添加: create table shapes ( shape_id int auto_increment primary key, material_id int, . . .
但有没有更干净的解决方案?(一个形状表,其行仅表示实体)。我不理解您的问题。您只需添加:
create table shapes (
shape_id int auto_increment primary key,
material_id int,
. . .
foreign key (material_id) references materials (material_id)
);
对于实体,只能在形状中添加行,因为它(通常)不适用于其他类型的实体。此数据模型不强制执行该约束。这是可能的,但我不知道是否有必要强制执行。至于你的例子,关于玻璃是液体还是固体,存在着有意义的争论