5

我正在对我们的表进行一些 FK 分析,方法是制作一个表示 FK 依赖关系的有向图,然后遍历该图。在我的代码中,我使用有向图术语来命名所有内容,但我希望在报告中添加一些更“用户友好”的内容。

在这种情况下:

create table t1(a varchar2(20));
alter table t1 add constraint t1_fk foreign key(a) references t2(b);

t1.a 必须存在于 t2.b 中。那么,我应该在空格中使用什么词?

t1 is the _______ of t2.
t2 is the _______ of t1.

许多TIA!

4

5 回答 5

5

我会说(括号之间的东西是可选的,但我会使用它们)

表 t1 的 [a 列] 引用表 t2 的 [b 列

[column b of] table t2 被 [column a of] table t1 引用

?

如果有的话,我还会指定删除/更新时发生的操作。

表 t2 的 b 列由表 t1 的 a 列引用。
删除表 t2 中的记录将删除表 t1 上的匹配记录
于 2008-11-03T08:44:43.270 回答
2
t1 is the parent of t2.
t2 is the child of t1.

这是什么观众?如果是理解关系模式的人,那么可能会这样做。如果是非技术人员,那么通常我已经在我的建模工具(ERWin)中专门记录了关系的含义。

InvoiceLineItem is a part of Invoice.
Invoice has one or more InvoiceLineItems.

或者:

User must belong to a Business.
Business has zero or more Users.
于 2008-11-03T11:10:52.460 回答
1

我会说一些类似的东西

t1 是 t2 的主人。ID 必须在 t1 中,然后才能在 t2 中提及。
t2 是 t1 的从机。它不能引用 t1 中不存在的 ID。

大多数非技术人员都会非常直观地掌握主/从术语。

于 2008-11-03T09:58:10.517 回答
1

您可以采用以下句子形式:

  • 每个 t1 行必须恰好链接到一个 t2 行
  • 每个 t2 行可以与任意数量的 t1 行链接,或者没有
于 2008-11-03T10:16:13.787 回答
0

在解释的场景中,我认为正确的命名应该是(从技术上讲):
t2is parent of t1
t1is the child oft2

受约束列的表称为表,而被引用列的表称为表。

我个人不喜欢这个命名,在 SQL SERVER 中,当您查询sys.foreign_keys视图时,子表被调用parent_object_id,而被引用的表被调用referenced_object_id.. 从约束本身的角度来看,可能是正确的.. 但最后这个很混乱。

于 2017-02-06T17:22:15.160 回答