بحاجة إلى مساعدة في إعداد علاقة مفتاح خارجي في MySQL DB

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

  •  27-09-2019
  •  | 
  •  

سؤال

لذلك لا بد لي من innodb جداول (المنتجات) و (الفئات). أردت إعداد علاقة بين حقل "الفئة" على جدول المنتجات ، و "الفئة" لجدول الفئات.

ولكن عند محاولة إنشاء FK ، ستسمح لي فقط بتحديد المفتاح الأساسي "ProductId" على جدول المنتجات ورسم الخريطة إلى PK "CatevoryId" على جدول الفئات.

ربما أفتقد الطريق/سبب إعداد مفتاح خارجي. أفكاري وأخبرني إذا كنت مخطئًا:

1) كان من المطلوب إضافة منتج إلى فئة عند إضافتها ، يجب أن تكون الفئة موجودة أو يجب أن تنشئه أولاً. لا يمكنك إزالة فئة ما لم تنفذ بعض المهام (برنامجياً أو على الواجهة الخلفية DB) لإزالة المنتجات من فئة ترغب في إزالتها.

2) كنت أتوقع تخزين القيمة الفئة في حقل "الفئة" لجدول المنتجات. ثم عند عرضه في رأيي ، ستحتاج إلى البحث عن حقل الفئات. الاسم حسب القيمة الفئة.

تعديل:لذلك أفهم أن حقلين متورطين في المفاتيح الأجنبية يجب أن يكونا هو نفسه ، الحجم ، الأنواع ... إلخ. ومع ذلك ، كيف يمكن لربط العمل الإنتاجي والفئة في السياق بما ذكرته أعلاه أريد القيام به. عندما قمت بإنشاء FK بين ProductId و CatevoryId ، لن أسمح لي بإضافة سجل منتج.

وأيضًا ، فإن حقل اسم الفئة وحقل فئة المنتج هما نفس النوع ، الحجم .. TEC ، ومع ذلك لا أحصل على خيار لتحديد تلك الموجودة في علامة تبويب المفتاح الخارجي؟

كيف يجب أن أقوم بإعداده حتى يعرف جدول الفئات المنتجات التي هي جزء من كل فئة.

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

المحلول

حسنًا ، لسوء الحظ ، يجب أن أجيب على أسئلتي الخاصة. سبب معظم مشاكلي الفنية هو أن المجال الذي تحاول صنعه "يجب فهرسته".

كانت القضية المتفجرة التي كنت أواجهها هي أنني كنت بحاجة للتخلص من حقل "الفئة" الفعلي على جدول المنتجات ، وإنشاء حقل فئة من الفئة التي سيكون لها سوى قيمة موجودة في حقل فئة الفئة الفئة.

الآن سأضطر فقط إلى الرجوع إلى حقل الاسم من خلال Products.CategoryID القيمة.

على الأقل هذا ما جئت إليه.

نصائح أخرى

إذا كنت في طاولة العمل ، فاحرص على أن أنواع وأطوال وسمات كلا العمدين المشاركين في FK هي نفسها.

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