Cara Membuat Relasi Antar Tabel Menggunakan MongoDB
MongoDB adalah database NoSQL yang populer dan dikenal dengan fleksibilitas dan skalabilitasnya. Meskipun MongoDB tidak memiliki konsep tabel seperti database relasional tradisional, kita dapat membuat relasi antar data dengan menggunakan beberapa strategi. Berikut beberapa cara untuk membuat relasi antar data di MongoDB:
1. Reference
Strategi yang paling umum adalah reference. Dalam metode ini, kita menyimpan reference (ID) dari dokumen terkait dalam dokumen lain. Misalnya, jika kita memiliki koleksi "users" dan "posts", kita dapat menyimpan ID pengguna dalam dokumen "posts" untuk menunjukan siapa yang membuat postingan tersebut.
// Koleksi Users
{
"_id": ObjectId("64474f994799e133b51276a9"),
"name": "John Doe",
"email": "[email protected]"
}
// Koleksi Posts
{
"_id": ObjectId("64474fa04799e133b51276aa"),
"title": "My first post",
"content": "This is my first post.",
"author": ObjectId("64474f994799e133b51276a9") // Reference ke User
}
Dalam contoh ini, "author" di dokumen "posts" adalah reference ke dokumen "users" dengan ID "64474f994799e133b51276a9".
2. Embedded Documents
Strategi ini melibatkan penyisipan embedded documents (dokumen yang tertanam) dalam dokumen lain. Ini berguna untuk menyimpan data terkait yang tidak terlalu banyak. Misalnya, kita bisa menyimpan informasi detail pengguna langsung di dalam dokumen "posts".
// Koleksi Posts
{
"_id": ObjectId("64474fa04799e133b51276aa"),
"title": "My first post",
"content": "This is my first post.",
"author": {
"name": "John Doe",
"email": "[email protected]"
}
}
Dengan menggunakan embedded documents, kita tidak perlu melakukan query tambahan untuk mendapatkan informasi tentang penulis.
3. Array of References
Jika sebuah dokumen memiliki hubungan "one-to-many" atau "many-to-many" dengan dokumen lain, kita dapat menggunakan array of references. Ini memungkinkan satu dokumen memiliki referensi ke banyak dokumen lainnya.
// Koleksi Users
{
"_id": ObjectId("64474f994799e133b51276a9"),
"name": "John Doe",
"email": "[email protected]"
}
// Koleksi Posts
{
"_id": ObjectId("64474fa04799e133b51276aa"),
"title": "My first post",
"content": "This is my first post.",
"authors": [
ObjectId("64474f994799e133b51276a9") // Reference ke User
]
}
Dalam contoh ini, "authors" adalah array yang berisi references ke beberapa dokumen "users".
Kesimpulan
MongoDB menyediakan fleksibilitas untuk membuat relasi antar data dengan berbagai cara. Pilihan metode terbaik tergantung pada kebutuhan dan struktur data Anda. Menggunakan referensi sangat cocok untuk hubungan "one-to-many" dan "many-to-many", sedangkan embedded documents lebih cocok untuk hubungan "one-to-one" dengan data yang relatif kecil.