@Gareth , Anda memiliki beberapa cara yang sah untuk melakukannya. Jadi, perhatian utama mereka adalah bagaimana Anda merencanakan kueri data, (yaitu:kueri apa yang perlu cepat )
Berikut adalah beberapa metode.
Metode #1:kumpulan "tautan"
Anda dapat membuat koleksi yang hanya berisi pemetaan antar koleksi.
Pro:
- Mendukung pembaruan atom sehingga data tidak hilang
Kekurangan:
- Kueri ekstra saat mencoba berpindah antar koleksi
Metode #2:simpan salinan pemetaan yang lebih kecil dalam koleksi yang lebih besar
Misalnya:Anda memiliki jutaan Products
, tetapi hanya seratus Categories
. Kemudian Anda akan menyimpan Categories
sebagai larik di dalam setiap Product
.
Pro:
- Jejak kaki terkecil
- Hanya perlu satu pembaruan
Kekurangan:
- Kueri tambahan jika Anda "salah jalan"
Metode #3:simpan salinan semua pemetaan di kedua koleksi
(apa yang Anda sarankan)
Pro:
- Akses kueri tunggal untuk berpindah di antara salah satu koleksi
Kekurangan:
- Indeks yang berpotensi besar
- Perlu transaksi (?)
Mari kita bicara tentang "kebutuhan transaksi". Ada beberapa cara untuk melakukan transaksi dan itu sangat tergantung pada jenis keamanan yang Anda butuhkan.
Anda pasti bisa melakukan ini. Anda harus bertanya pada diri sendiri, apa hal terburuk yang terjadi jika hanya satu penyelamatan yang gagal?
Metode #4:mengantrekan perubahan
Saya tidak tahu apakah Anda pernah bekerja dengan antrian, tetapi jika Anda memiliki waktu luang, Anda dapat membuat antrian sederhana dan memiliki pekerjaan berbeda yang memperbarui koleksi masing-masing.
Ini adalah solusi yang jauh lebih maju. Saya cenderung memilih #2 atau #3.