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 করতে হবে এবং ডাটা শুধুমাত্র একটি সংগ্রহ থেকে দেখাতে হবে ।