إعادة تسمية عمود قاعدة البيانات في الجدول المرجعي (انتهاك؟)

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

سؤال

لنفترض أن لدي هذا الجدول:

Person table
--------------
PersonId

Address table
------------
AddressId
PersonAddressId

حيث PersonAddressId هو PersonId والمفتاح الخارجي.هل هناك أي نوع من انتهاك قاعدة البيانات في إعادة تسمية المفتاح الخارجي؟يمكن أن يصبح العمل معهم مربكًا للغاية عندما يكون لديهم أسماء مختلفة.

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

المحلول

من المفيد عمومًا تسمية عمود المفتاح الخارجي بنفس اسم عمود المفتاح الأساسي الذي يشير إليه، حيثما أمكن ذلك.

بالطبع، في بعض الأحيان لا يكون ذلك ممكنًا:

  • عمودين في Address قد يكون كلاهما مفاتيح خارجية لـ Person, ، لذا من الواضح أنه لا يمكنك تسمية كلا العمودين PersonId.
  • تحتوي بعض الجداول على مفتاح خارجي لنفسها، على سبيل المثال. Employee.manager_id يمكن أن يكون مرجعا ل Employee.employee_id.مرة أخرى، لا يمكنك تسمية العمود بنفس اسم المفتاح الأساسي المشار إليه في هذا السيناريو.

لا توجد اصطلاحات تسمية صارمة في SQL.أحد مصادر اصطلاحات تسمية البيانات التعريفية المقترحة هو ايزو 11179.

نصائح أخرى

ومتفق عليه وهذا هو السبب في أن الاتفاقية هي على سبيل المثال PersonAddressId كما PersonId.

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