在实体关系中双方都是强制性的插入

时间:2013-05-17 21:34:42

标签: sql entity-relationship

我正准备从数据库进行考试,有一件事让我困惑。从我所读到的,任何关系的双方都可以被约束为非空。我在至少2本书和各种文章中看过它。

然而,没有人解释如何在这些表中插入值。据我所知,大多数数据库(Oracle除外)不可能一次插入多个表。这意味着首先需要插入其中一个表。但是在那一刻,第二个表中没有相应的条目,因此我无法引用违反NOT NULL约束的条目。

另一个问题是很难在1:N或M:N关系中强制实现双方的关系。 (我只能想到触发器)

所以问题是:这些关系是否真的可以实现,还是仅仅是在现实生活中没有使用的“理论”概念?

1 个答案:

答案 0 :(得分:0)

要在SQL中实现两个实体(表)之间的关系,表(Table1)的主键是在另一个表(Table2)中创建外键。如果它是双向强制关系(两个表都是NOT NULL)那么条目应该首先插入Table1中,其中首先包含主键,然后插入包含Table1主键的另一个Table2的条目作为外键。请查看此link以获取更多详细信息和示例。