문제

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

그리고

[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 행은 정확히 하나의 t2 행에 연결되어야합니다.
  • 각 T2 행은 T1 행의 수와 연결되어 있거나 없음

설명 된 시나리오에서 나는 올바른 명명이 (기술적으로 말하면)이어야한다고 생각합니다.
t2부모입니다 t1
t1 아이입니다 t2

제한된 열의 표를 호출합니다 어린이, 참조 열의 테이블이 호출되는 동안 부모의.

개인적으로 나는이 명명을 싫어합니다. sys.foreign_keys 자식 테이블을 볼 수 있습니다 parent_object_id, 참조 테이블이 호출되는 동안 referenced_object_id.. 제약 자체의 관점에서 볼 때, 옳을 수 있습니다. 그러나 결국 이것은 매우 혼란 스럽습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top