اذهب إلى المحتوى

السؤال

نشر

السلام عليكم

لدي مشروع لارافل يحتوي على عدة جداول وبيانات قديمة مخزنة فيها من ضمنها جدول suppliers هذا الجدول يحتوي على foreign key  اسمه store_id يربطه بجدول stores

الان قمت بانشاء جدول وسيط اسمه supplier_stores يحوي هذه القيم store_id و supplier_id 

على سبيل المثال في هذه الصورة يوجد لدي suppliers  يحملون نفس الاسم ولكن قيمة store_id مختلف

أرغب في نقل هذه البيانات الى الجدول الوسيط

6225ab2f43812_Screenshotfrom2022-03-0709-41-57.thumb.png.c625951077bd7b23662f4eb3abd60281.pngبحيث تكون قيمة supplier_id في الجدول الوسيط موحدة للبيانات التي تتشابه بالاسم .

بدلا من أن يكون لدي موردين اثنين يحملون نفس الاسم أرغب في أن يكون المورد واحد وفي الجدول الوسيط نسجل store_id s الذي يقوم المورد بتوريد البضاعة لهم.

ومن ثم بعد ذلك سنقوم بحذف قيمة store_id من الجدول الاساسي suppliers

 اتمنى الشرح مفهوم هذا السيناريو سيطبق على قاعدة بيانات كبيرة تحمل بيانات قديمة ولا نرغب في خسارتها او التعديل والادخال بشكل يدوي.

هذا بمثابة ترقية لقاعدة البيانات 

وشكرا

Recommended Posts

  • 0
نشر

المشكلة لديك هي في تنظيف البيانات لا تدع تلك المشكلة تزحف إلى زوايا المشروع فستبقى تحاول إيجاد الحلول لها في كل سياق لمشكلة تواجهك تكون هي مصدرها،

المعرّف هو قيمة تميز بين كائنين مختلفين كليًا، أي لو تشابه كائنان في جميع الخصائص واختلفا بقيمة المعرف فهما كائنان مختلفان ويجب معاملتهما كذلك، قد يصدف امتلاك موردين مختلفين لنفس الاسم ولكن هما موردين مختلفين

حاول تنظيف البيانات في جدول suppliers بعد تأكدك من أن تطابق الأسماء يعني تطابق ما تمثله تلك السجلات في الواقع، ابدأ

  • حديد النسخ المتكررة من جدول الموردين
  • اختر احداها واعتمد المعرف له ضمن باقي الجداول
  • قم بتعديل المفتاح foreign key ضمن الجداول كافة لتشير إلى معرف المورد الذي اعتمدته

بعدها لن تحتاج لحل تلك المشكلة ضمن باقي المشروع فقط معرف واحد لكل مورد حقيقي وغير مسموح بالتكرار

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...