আমি কিছুক্ষণের জন্য নোএসকিউএল ডিবি ব্যবহার করে আসছি, এবং এটি এই বিষয়টিতে আমার অবদান:
একটি মহান ব্যবহারের ক্ষেত্রে একটি NoSQL ডাটাবেসের জন্য জন্য একটি আবেদন পরিসংখ্যান এবং / অথবা রিপোর্ট প্রজন্মের , এবং expecially ডেটা একটি তৃতীয় পক্ষের উত্স থেকে প্রদান করা হয়।
এমন একটি পরিস্থিতিতে একটি নোএসকিউএল ডাটাবেস একটি দুর্দান্ত পছন্দ হতে পারে
আসুন বিবেচনা করুন, উদাহরণস্বরূপ, মঙ্গোডিবি :
একবার আপনি JSON এ আপনার ডেটা আছে, (এটা কোনও তৃতীয় পক্ষের API থেকে আসতে পারে, অথবা একটি SQL-অ্যাপ্লিকেশন থেকে রপ্তানি করা) এ MongoDB সুন্দর আমদানি করতে strightforward এবং আপডেট তাদেরকে JSON তথ্য ডাটাবেসের মধ্যে; উদাহরণস্বরূপ কমান্ড-লাইন mongoimport
ইউটিলিটি ব্যবহার করে
এই মুহুর্তে ফিল্টারিং এবং গ্রুপিংয়ের সাথে গতিশীল ক্যোয়ারী তৈরি করা খুব সহজ , এটি এই ধরণের অ্যাপ্লিকেশনের সাথে ভাল well
উদাহরণস্বরূপ, সমষ্টি ফ্রেমওয়ার্ক ব্যবহার করে :
$pipeline = [];
//filter by date
$pipeline[] = [ '$match' => [ 'created_at' => [ '$gte' => $starDate, '$lte' => $endDate ] ] ];
//if we want to filter by a specific field, we add the filter to the pipeline array
if( $filters->isFilterByField() )
$pipeline[] = [ '$match' => [ 'field' => $fieldValue ] ];
//group the results by date and get the count
$pipeline[] = [ '$group' => [ '_id' => '$created_at', 'num_elements' => [ '$sum' => 1 ] ] ];
return $collection->aggretate( $pipeline );
আমি বাতলান চাই অনায়াস যা দিয়ে আমরা করতে dinamically যোগ / অপসারণ ফিল্টার পিএইচপি ডাটা স্ট্রাকচার ব্যবহার করে এবং ক্লান্তিকর স্ট্রিং সংযুক্তকরণের এড়ানো আমাদের প্রশ্নের বিল্ড আপ। এই পদ্ধতির সাথে ডাইনামাইক্যালি ফিল্টারগুলি যুক্ত করা / অপসারণ করা কোনও অ্যারের থেকে উপাদানগুলি যুক্ত / অপসারণের মতোই সহজ
আরেকটি দুর্দান্ত সুবিধা এই সত্য থেকে আসে যে এরূপ সমাধানটি একটি রিলেশনাল ডাটাবেস ব্যবহার করার চেয়ে দ্রুততর হতে পারে , যেখানে আমাদের প্রয়োজনীয় সমস্ত ডেটা পেতে আমাদের বিভিন্ন টেবিলের সাথে যোগ দিতে হয়
তদতিরিক্ত, এই ব্যবহারের ক্ষেত্রেটি সর্বোত্তম কারণ কোনও নুএসকিউএল ডাটাবেসের সমস্ত প্রধান সীমাবদ্ধতা এড়িয়ে চলে :
লেনদেনের অভাব: অ্যাপ্লিকেশনটি লেখার কাজ সম্পাদন করে না কেবল পাঠ করে, তাই আমাদের কোনও লেনদেনের দরকার নেই
টেবিলগুলির মধ্যে যোগ দেওয়ার অভাব: আমাদের সংযুক্ত হওয়ার দরকার নেই, কারণ আমরা সংগ্রহগুলিতে আমাদের অস্বীকৃত ডেটা সংরক্ষণ করতে রিডানডেন্সি ব্যবহার করতে পারি । যেহেতু আমরা কেবল ডেটা পড়ি, আপডেটগুলির মধ্যে ডেনারমালাইজড ডেটা সিঙ্ক্রোনাইজ করার বিষয়ে আমাদের উদ্বিগ্ন হওয়ার দরকার নেই।
এইভাবে আমরা অতিরিক্তভাবে আমাদের প্রশ্নগুলির সাথে উপযুক্তভাবে উপাত্তগুলি সঞ্চয় করে ফোকাস করতে পারি , এটি একক সংগ্রহগুলিতে ফোকাস হবে on
আমি কেবল এটি লিখছি কারণ আমি যদি কিছু সময় আগে এমন কিছু পড়ে থাকতাম তবে এটি গবেষণার জন্য আমার কিছুটা সময় সাশ্রয় হত
আশা করি এটি কারও কাজে আসবে