Back to Question Center
0

سيمالت عناوين المواقع مع مفاتيح الابتدائية القديمة إلى مفاتيح أساسية جديدة

1 answers:

لدينا قاعدة بيانات حصلنا عليها عن طريق الزحف، حيث يحتوي كل صف على مفتاح أساسي X ، ورقم فريد Y تم الحصول عليه من إجراء الزحف (المفتاح الأساسي ل المصدر الأصلي). لأسباب تاريخية، نحن نستخدم X لإنشاء عناوين ورل لكل كائن (ه. ز - long term care insurance seniors. هتب: // إكسامبل. كوم / أوبجيكت / X ).

كانت قاعدة البيانات هذه في ميسكل، ونحن نهاجر البيانات إلى بوستغريز. تحقيقا لهذه الغاية، قررنا الزحف إلى المصدر الأصلي من الصفر (لأسباب أخرى تعتبر) إلى قاعدة البيانات الجديدة. وهذا يعني أن لدينا الآن مفتاح أساسي جديد Z المرتبطة أرقام فريدة من نوعها Y .

المشكلة هي أنه إذا قمنا بترحيل قاعدة البيانات على الإنتاج، تصبح الروابط هتب: // إكسامبل. كوم / أوبجيكت / Z ، والتي تشير إلى كائن مختلف عن هتب: // إكسامبل. كوم / أوبجيكت / X (منذ X! = Z => مختلفة Y .

بطبيعة الحال نحن لا نريد أن يحدث هذا منذ 1. فإن محركات البحث تشير إلى الكائن الخطأ و 2. X1-> Y1 ، نقطة البداية إلى الكائن Z1-> Y2 = Y1 .

تشير هذه المشكلة بالفعل إلى أننا نريد عناوين ورل التي تم إنشاؤها من Y . والسؤال الآن هو كيفية إجراء هذا الترحيل.

أرى نهجين للمشكلة:

  1. باستخدام قاعدة البيانات القديمة، إنشاء إعادة توجيه الارتباط إلى ارتباط يعتمد فقط على Y هتب: // إكسامبل. كوم / أوبجيكت / X -> هتب: // إكسامبل. كوم / object1 / Y ، انتظر 1 شهر، ثم ترحيل قاعدة البيانات مع تغيير في عناوين ورل لتلك التي تستخدم Y .

  2. إنشاء عمود جديد في قاعدة البيانات الجديدة old_pk ، وإجراء ترحيل من قاعدة البيانات القديمة إلى قاعدة البيانات الجديدة، عن طريق إدراج القديم X Y ، ثم إلى هتب: // إكسامبل. كوم / أوبجيكت / X -> هتب: // إكسامبل. كوم / object_ / Y (لتجنب هذه المشاكل في المستقبل)

1. لديه عيب أن الإنتاج بأكمله يجب أن تنتظر الروابط للهجرة، ولن يحافظ على عناوين ورل القديمة للأبدية. 2 لديه العيب سيستغرق وقتا للهجرة منذ قاعدة البيانات تحتوي على +600. 000، وسوف تحتوي قاعدة البيانات الجديدة على البيانات القديمة. أنا أكثر ميلا إلى 2. ، ولكن أود أن أرى رأيا ثانيا:

  1. هل هذا المنطق منطقي؟
  2. هل هناك نهج أخرى لا نراها؟
February 14, 2018