যদি আমি ইভেন্ট সোর্সিং ডেটা সঞ্চয় করার জন্য কোনও আরডিবিএমএস (যেমন এসকিউএল সার্ভার) ব্যবহার করি, তবে স্কিমাটি কেমন দেখাচ্ছে?
আমি একটি বিমূর্ত অর্থে কথা বলার কয়েকটি প্রকরণ দেখেছি, তবে কিছুই কংক্রিট নয়।
উদাহরণস্বরূপ, বলুন যে কারও একটিতে "পণ্য" সত্তা রয়েছে, এবং সেই পণ্যটির পরিবর্তনগুলি আকার: মূল্য এবং বিবরণ আকারে আসতে পারে। আমি যাচ্ছি কিনা তা নিয়ে আমি বিভ্রান্ত
- একটি "প্রোডাক্টসেন্ট" টেবিল রয়েছে, এটিতে একটি পণ্যটির সমস্ত ক্ষেত্র রয়েছে, যেখানে প্রতিটি পরিবর্তনের অর্থ সেই সারণিতে একটি নতুন রেকর্ড থাকে, এবং "কে, কী, কোথায়, কেন, কখন এবং কিভাবে" (ডাব্লুডাব্লুডাব্লুডাব্লুডাব্লুএইচ) উপযুক্ত হিসাবে। যখন ব্যয়, দাম বা বিবরণ পরিবর্তন করা হয়, পণ্যটির প্রতিনিধিত্ব করতে যোগ করা সম্পূর্ণ নতুন সারি।
- পৃথক টেবিলগুলিতে পণ্যের মূল্য, মূল্য এবং বিবরণ স্টোর করুন কোনও বিদেশী কী সম্পর্কের সাথে পণ্য টেবিলে যোগ দিলেন। যখন এই বৈশিষ্ট্যগুলির পরিবর্তন ঘটে, যথাযথভাবে ডাব্লুডাব্লুডাব্লুডাব্লুএইচ দিয়ে নতুন সারি লিখুন।
- একটি "প্রোডাক্টসেন্ট" টেবিলের মধ্যে ডাব্লুডাব্লুডাব্লুডাব্লুডাব্লুএইচ, সেই সাথে ইভেন্টটি উপস্থাপন করে এমন সিরিয়ালযুক্ত বস্তু সংরক্ষণ করুন, অর্থাত্ কোনও প্রদত্ত পণ্যের জন্য অ্যাপ্লিকেশন রাষ্ট্রটি পুনর্নির্মাণের জন্য ইভেন্টটি নিজেই লোড করা, ডি-সিরিয়ালাইজড এবং আমার অ্যাপ্লিকেশন কোডটিতে পুনরায় খেলতে হবে meaning ।
বিশেষত আমি উপরের বিকল্প 2 সম্পর্কে চিন্তিত। চূড়ান্তভাবে নেওয়া, পণ্য সারণি প্রায় এক-টেবিল-সম্পত্তি হিসাবে সম্পত্তি হবে, যেখানে প্রদত্ত পণ্যের জন্য অ্যাপ্লিকেশন স্টেটটি লোড করতে প্রতিটি পণ্যের ইভেন্ট টেবিল থেকে সেই পণ্যটির জন্য সমস্ত ইভেন্ট লোড করা প্রয়োজন। এই টেবিল-বিস্ফোরণটি আমার কাছে দুর্গন্ধযুক্ত।
আমি নিশ্চিত "এটি নির্ভর করে", এবং কোনও একক "সঠিক উত্তর" না থাকাকালীন আমি কী গ্রহণযোগ্য, এবং যা সম্পূর্ণ গ্রহণযোগ্য নয় তার অনুভূতি পাওয়ার চেষ্টা করছি। আমি এটাও সচেতন যে নোএসকিউএল এখানে সহায়তা করতে পারে, যেখানে ইভেন্টগুলি সামগ্রিক মূলের বিরুদ্ধে সংরক্ষণ করা যেতে পারে, যার অর্থ ঘটনাগুলি থেকে পুনর্নির্মাণের জন্য ডেটাবেসকে কেবলমাত্র একক অনুরোধ, তবে আমরা কোনও নূএসকিউএল ডিবি ব্যবহার করছি না মুহূর্ত তাই আমি বিকল্প জন্য প্রায় অনুভব করছি।