ArangoDB-তে Nested Documents এবং Linked Documents ডেটা মডেলিংয়ের দুটি গুরুত্বপূর্ণ ধারণা। এগুলো ডেটার মধ্যে সম্পর্ক এবং কাঠামো গঠনে সহায়ক।
Nested Documents হলো এমন ডকুমেন্ট যা একটি ডকুমেন্টের ভেতরেই আরেকটি ডকুমেন্ট হিসাবে থাকে। এটি JSON ফরম্যাটে ডেটা গঠন করার জন্য ব্যবহৃত হয়, যেখানে একটি ডকুমেন্টের মধ্যে অন্যান্য ডেটার গ্রুপ থাকে।
{
"name": "John Doe",
"age": 30,
"address": {
"street": "123 Main St",
"city": "Dhaka",
"zip": "1205"
},
"phones": [
{
"type": "mobile",
"number": "1234567890"
},
{
"type": "home",
"number": "9876543210"
}
]
}
db.users.insert({
name: "John Doe",
age: 30,
address: {
street: "123 Main St",
city: "Dhaka",
zip: "1205"
}
});
FOR user IN users
FILTER user.address.city == "Dhaka"
RETURN user
Linked Documents হলো এমন ডকুমেন্ট যা একে অপরের সাথে রেফারেন্সের মাধ্যমে সম্পর্কিত থাকে। এটি ArangoDB-তে Graph Database বা Edge Collection ব্যবহার করে তৈরি হয়।
{
"_key": "user1",
"name": "John Doe"
}
{
"_from": "users/user1",
"_to": "orders/order123"
}
db.users.insert({ _key: "user1", name: "John Doe" });
db.orders.insert({ _key: "order123", product: "Laptop" });
db.edges.insert({
_from: "users/user1",
_to: "orders/order123"
});
FOR vertex, edge IN OUTBOUND "users/user1" edges
RETURN vertex
প্যারামিটার | Nested Documents | Linked Documents |
---|---|---|
কাঠামো | ডকুমেন্টের মধ্যে অন্য ডকুমেন্ট। | আলাদা ডকুমেন্ট যা সম্পর্কিত। |
ডেটার সম্পর্ক | একই ডকুমেন্টে সংরক্ষিত। | Graph বা Edge ব্যবহার করে সম্পর্কিত। |
উপযোগিতা | সহজ এবং কম জটিল সম্পর্কের জন্য। | জটিল এবং বহুমাত্রিক সম্পর্কের জন্য। |
কোয়েরি পারফরম্যান্স | দ্রুত, যদি ডেটা একসাথে ব্যবহৃত হয়। | Graph Traversal-এর সময় কার্যকর। |
ডেটা রিডান্ডেন্সি | ডেটা রিডান্ডেন্সির সম্ভাবনা বেশি। | রিডান্ডেন্সি কম, কারণ সম্পর্ক আলাদাভাবে সংরক্ষিত। |
ArangoDB-তে Nested Documents এবং Linked Documents ডেটা মডেলিংয়ের দুইটি ভিন্ন পদ্ধতি। Nested Documents সহজ ডেটা গঠনের জন্য উপযুক্ত, যেখানে Linked Documents জটিল সম্পর্ক মডেলিং এবং গ্রাফ ভিত্তিক ডেটা বিশ্লেষণের জন্য আদর্শ। প্রকল্পের চাহিদা অনুযায়ী এদের যেকোনো একটি বা উভয়ই ব্যবহার করা যেতে পারে।
common.read_more