MongoDB Data Modelling . MongoDB ডেটা মডেলিং

MongoDB Data Modelling : MongoDB ডেটা মডেলিং
আদনান নাহিদ
সরকারি তিতুমীর কলেজ ।
MongoDB ডেটায় একটি নমনীয় স্কিমা আছে, যার ফলে একই ধরনের ডকুমেন্টে একই ধরনের গঠনের প্রয়োজন হয় না এবং সংগহে থাকা কমন ডকুমেন্টগুলো বিভিন্নভাবে রাখা যায় ।

MongoDB তে স্কিমা ডিজাইন করার সময় কিছু বিবেচ্য বিষয় :
 ব্যবহারকারীর প্রয়োজনীয়তা অনুযায়ী আপনার স্কিমা ডিজাইন ।
 যদি আপনি চান তাহলে একই ডকুমেন্টে অবজেক্টগুলো একত্রে ব্যবহার করতে পারবেন । অন্যথায় সবগুলো আলাদা করুন (তবে সেখানে একত্রীকরণের প্রয়োজন হয়না এটি নিশ্চিত করুন) ।
 ডাটাগুলো Duplicate বা কপি করুন (কিন্তু সীমাবদ্ধ)। কারণ ডিস্কের স্থান সস্তা সময় গণনার তুলনায় ।
 লেখার সময় একত্র করুন, পড়ার সময় না ।
 ঘন ঘন ব্যবহারের ক্ষেত্রে আপনার স্কিমাগুলো অনুকূলে রাখুন ।
 জটিল স্কিমা একত্রিত করবেন না বা আলাদা রাখুন ।

উদাহরণ :
ধরুন একজন ক্লায়েন্ট তার ব্লগ ওয়েব সাইটের জন্য একটি ডাটাবেস ডিজাইনের প্রয়োজন এবং RDBMS এবং MongoDB স্কিমা নকশা মধ্যে পার্থক্য দেখতে চায় । তাহলে ওয়েবসাইটটি নিম্নলিখিত প্রয়োজনীয়তা অনুসারে হবে ;
 প্রতিটি পোস্টের একটি অনন্য শিরোনাম, বিবরণ এবং URL হবে ।
 প্রতিটি পোস্টে এক বা একাধিক ট্যাগ করতে পারেন ।
 প্রতিটি পোস্টে তার প্রকাশক এবং মোট লাইকের সংখ্যা হবে ।
 প্রতিটি পোস্টে comments কারীর নাম, বার্তা, তথ্য-সময় এবং লাইকের সংখ্যা হবে ।
 প্রতিটি পোস্টে শূন্য বা তার বেশি comments বা মন্তব্য হতে পারে ।

RDBMS উপরোক্ত প্রয়োজনীয়তা অনুসারে স্কিমা ডিজাইন করার জন্য সর্বনিম্ন তিনটি টেবিল থাকবে ।

MongoDB স্কিমা ডিজাইন করার সময় একটি কালেকশান পোস্ট হবে এবং এর কাঠামো হবে নিম্ননুসারে ;
{
_id: POST_ID
title: TITLE_OF_POST,
description: POST_DESCRIPTION,
by: POST_BY,
url: URL_OF_POST,
tags: [TAG1, TAG2, TAG3],
likes: TOTAL_LIKES,
comments: [
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
},
{
user:'COMMENT_BY',
message: TEXT,
dateCreated: DATE_TIME,
like: LIKES
}
]
}

এখন RDBMS এ ডাটা দেখানোর সময় আপনাকে 3 টি tables join করতে হবে এবং ডাটা শুধুমাত্র একটি সংগ্রহ থেকে দেখাতে হবে ।

Permanent link to this article: http://bangla.sitestree.com/mongodb-data-modelling/