আমি নিশ্চিত যে প্রচুর অ্যাপ্লিকেশন, সমালোচনামূলক অ্যাপ্লিকেশন, ব্যাংক এবং প্রতিদিনের ভিত্তিতে এটি করে।
তার পিছনে ধারণাটি হ'ল:
- সমস্ত সারি একটি ইতিহাস থাকতে হবে
- সমস্ত লিঙ্ক সুসংগত থাকতে হবে
- "বর্তমান" কলামগুলি পেতে অনুরোধ করা সহজ হওয়া উচিত
- অপ্রচলিত জিনিস কিনেছে এমন ক্লায়েন্টদের এখনও এই পণ্যটি ক্যাটালগের অংশ না হলেও তারা কী কিনেছিল তা দেখতে হবে
ইত্যাদি।
আমি যা করতে চাই তা এখানেই রয়েছে এবং আমি যে সমস্যার মুখোমুখি হচ্ছি তা ব্যাখ্যা করব।
আমার সমস্ত টেবিলে সেই কলামগুলি থাকবে:
id
id_origin
date of creation
start date of validity
start end of validity
এবং এখানে সিআরইউডি অপারেশন সম্পর্কিত ধারণা রয়েছে:
id_origin
=id
,date of creation
= এখন,start date of validity
= এখন,end date of validity
= নাল (= এর অর্থ এটি বর্তমান সক্রিয় রেকর্ড) দিয়ে নতুন সারিটি সন্নিবেশ করান- আপডেট =
end date of validity
== নাল দিয়ে সমস্ত রেকর্ড পড়ুন- এখনই "বর্তমান" রেকর্ড
end date of validity
= নাল সাথে আপডেট করুনend date of validity
- নতুন মান সহ একটি নতুন তৈরি করুন এবং
end date of validity
= নাল (= এর অর্থ এটি বর্তমান সক্রিয় রেকর্ড)
- মুছে ফেলুন = "বর্তমান" রেকর্ডটি আপডেট করুন = এখন =
end date of validity
সাথে নালend date of validity
সুতরাং এখানে আমার সমস্যা: বহু থেকে বহু সংঘের সাথে। মানগুলির সাথে একটি উদাহরণ নেওয়া যাক:
- সারণি এ (আইডি = 1, আইডি_রিগিন = 1, শুরু = এখন, শেষ = নাল)
- সারণী এ_বি (এখনই শুরু = শেষ, নাল, আইডি_এ = 1, আইডি_বি = 48)
- সারণি বি (id = 48, id_origin = 48, শুরু = এখন, শেষ = নাল)
এখন আমি টেবিল এ আপডেট করতে চাই, আইডি = 1 রেকর্ড করুন
- আমি এখন = শেষের সাথে রেকর্ড আইডি = 1 চিহ্নিত করি
আমি টেবিল এ এবং ... একটি নতুন মান সন্নিবেশ করলাম যদি আমি সম্পর্কটিকে নকল না করি তবে আমি আমার সম্পর্ক এ_বি হারিয়ে ফেলেছি ... এটি কোনও টেবিলে শেষ হবে:
সারণি এ (আইডি = 1, আইডি_রিগিন = 1, শুরু = এখন, শেষ = এখন + 8 মিলিয়ন)
- সারণি এ (আইডি = 2, আইডি_রিগিন = 1, শুরু = এখন +8 মিলিয়ন, শেষ = নাল)
- সারণী এ_বি (এখনই শুরু = শেষ, নাল, আইডি_এ = 1, আইডি_বি = 48)
- সারণী এ_বি (এখনই শুরু = শেষ, নাল, আইডি_এ = 2, আইডি_বি = 48)
- সারণি বি (id = 48, id_origin = 48, শুরু = এখন, শেষ = নাল)
এবং ... ভাল আমার আর একটি সমস্যা আছে: সম্পর্ক A_B: আমি কি (আইডি_এ = 1, আইডি_বি = 48) অপ্রচলিত হিসাবে চিহ্নিত করব বা না (এ - আইডি = 1 অপ্রচলিত, তবে বি - 48 নয়)?
কিভাবে এটি মোকাবেলা?
আমাকে এটি একটি বড় আকারে ডিজাইন করতে হবে: পণ্য, অংশীদার এবং আরও অনেক কিছু।
এ সম্পর্কে আপনার অভিজ্ঞতা কী? আপনি কীভাবে করবেন (আপনি কীভাবে করেছেন)?
- সম্পাদনা করুন
আমি এই খুব আকর্ষণীয় নিবন্ধটি পেয়েছি , তবে এটি "ক্যাসকেডিং অপ্রচলতা" (= আমি আসলে যা বলছি) সাথে সঠিকভাবে মোকাবেলা করে না