إعادة تسمية عمود قاعدة البيانات في الجدول المرجعي (انتهاك؟)
-
21-08-2019 - |
سؤال
لنفترض أن لدي هذا الجدول:
Person table
--------------
PersonId
Address table
------------
AddressId
PersonAddressId
حيث PersonAddressId هو PersonId والمفتاح الخارجي.هل هناك أي نوع من انتهاك قاعدة البيانات في إعادة تسمية المفتاح الخارجي؟يمكن أن يصبح العمل معهم مربكًا للغاية عندما يكون لديهم أسماء مختلفة.
المحلول
من المفيد عمومًا تسمية عمود المفتاح الخارجي بنفس اسم عمود المفتاح الأساسي الذي يشير إليه، حيثما أمكن ذلك.
بالطبع، في بعض الأحيان لا يكون ذلك ممكنًا:
- عمودين في
Address
قد يكون كلاهما مفاتيح خارجية لـPerson
, ، لذا من الواضح أنه لا يمكنك تسمية كلا العمودينPersonId
. - تحتوي بعض الجداول على مفتاح خارجي لنفسها، على سبيل المثال.
Employee.manager_id
يمكن أن يكون مرجعا لEmployee.employee_id
.مرة أخرى، لا يمكنك تسمية العمود بنفس اسم المفتاح الأساسي المشار إليه في هذا السيناريو.
لا توجد اصطلاحات تسمية صارمة في SQL.أحد مصادر اصطلاحات تسمية البيانات التعريفية المقترحة هو ايزو 11179.
نصائح أخرى
ومتفق عليه وهذا هو السبب في أن الاتفاقية هي على سبيل المثال PersonAddressId كما PersonId.
لا تنتمي إلى StackOverflow