質問

私はテーブルの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!

役に立ちましたか?

解決

言いたいです(括弧内は省略可能ですが、使用します)

[Column a of] table t1 references [column b of] table t2

and

[Column b of] table t2 is referenced by [column a of] table t1

また、削除/更新がある場合に発生するアクションも指定します。

Column b of table t2 is referenced by column a of table t1. 
Deleting a record in table t2 will delete matching records on table t1

他のヒント

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.

次のように言います

t1 is the master of t2. An ID must be in t1, before it can be mentioned in t2.
t2 is the slave of t1. It cannot refer to an ID that does not exist in t1.

ほとんどの非技術者は、マスター/スレーブの用語を非常に直感的に理解します。

次の文形式を採用できます。

  • 各t1行は、必ず1つのt2行にリンクする必要があります
  • 各t2行は、任意の数のt1行にリンクすることも、何もリンクしないこともできます

説明したシナリオでは、正しい命名は(技術的に言えば)であるべきだと思います:
t2 t1
の親です t1 t2

の子です

制約された列のテーブルはと呼ばれ、参照された列のテーブルはと呼ばれます。

個人的にはこの命名は嫌いです。SQLSERVERでは、 sys.foreign_keys ビューを照会するとき、子テーブルは parent_object_id と呼ばれ、参照されるテーブルは< code> referenced_object_id ..制約自体の観点からは正しいかもしれませんが、最後には非常に紛らわしいです。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top