如何从共享相同主键的表中删除

时间:2017-02-16 16:00:13

标签: database-design plsql oracle11g

您好我有一点数据库设计问题

用户需要捕获

形状,长度min,长度max,宽度min,宽度max,gauge min,gauge max(这是简化的)。 预计他会进入表格并且至少一部分,例如形式和长度最小和最大。他可能会输入多个部分。

我觉得我不应该有一张桌子。我正计划创建一个表格,长度,宽度和规格表。长度,宽度和规格表将具有表格表的外键,我的尺寸表将share the same primary key(我认为这是1到1/0的关系)。这将允许我在需要的地方拥有/不拥有某些部分并消除空条目。我的第一个问题是,这是一个好的数据库设计吗?如果我需要删除如何在不删除关系的情况下删除(在plsql中)?

2 个答案:

答案 0 :(得分:0)

删除具有1到0/1关系的行与1对多关系相同。您可以使用on delete cascade定义FK,因此删除父级会自动删除子级,或者始终先删除子级。

我不确定我是否理解你的模型足以告知双表方法在这里是否正确,但一般来说,当列的子集可能不适用时,它是一种非常好的技术。

我没有看到PL / SQL问题,但也许我错过了一些东西。

答案 1 :(得分:0)

我很好的数据库设计从标准化开始。希望以下链接能够清晰地表达出来。

Normalization