المصطلحات العلائقية:مصدر المفتاح الخارجي، الوجهة؟

StackOverflow https://stackoverflow.com/questions/258134

  •  06-07-2019
  •  | 
  •  

سؤال

أقوم ببعض تحليلات 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.

العديد من تيا!

هل كانت مفيدة؟

المحلول

وانا اقول (الأشياء بين قوسين اختيارية، ولكن كنت استخدامها)

[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.

ما هو الجمهور لهذا؟ اذا كان الناس الذين يفهمون مخطط العلائقية، ثم أن من المحتمل أن تفعل. إذا كان الناس غير التقنيين، ثم عموما لقد وثقت في بلدي النمذجة أداة (إروين) معنى العلاقات على وجه التحديد.

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

يسمى جدول العمود المقيد طفل, ، بينما يتم استدعاء جدول العمود المشار إليه الأبوين.

أنا شخصياً لا أحب هذه التسمية في SQL SERVER عندما تقوم بالاستعلام عن ملف sys.foreign_keys عرض الجدول الفرعي يسمى parent_object_id, ، بينما يتم استدعاء الجدول المشار إليه referenced_object_id..من وجهة نظر القيد نفسه، يمكن أن يكون على حق..ولكن في النهاية هذا مربك للغاية.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top