Rumah > Soal Jawab > teks badan
他说这样更方便查询,是呀,傻子也知道这样便于查询。我质疑说这样在存储时会不好,但他说有shortId什么的,求解答!
给我你的怀抱2017-04-25 09:04:36
Ini memerlukan analisis terperinci perniagaan tertentu.
Jika nama jenama ditetapkan kepada ObjectId
, bermakna terdapat satu lagi collection
yang menyimpan jenama tersebut. Ini ialah kaedah pangkalan data relasi biasa Untuk mongodb, setiap kali anda ingin mendapatkan nama jenama produk, anda memerlukan satu lagi operasi baca.
Jika ditetapkan kepada String
, semua maklumat produk dan nama jenama boleh diambil dalam satu operasi, tetapi sangat menyusahkan untuk mengubah suai jenama Jika anda juga perlu mendapatkan beberapa maklumat tentang jenama dalam satu permintaan, seperti negara di mana jenama itu terletak, Kemudian anda masih perlu melakukan pertanyaan semula, kerana skalabiliti tidak cukup baik.
Jika ditetapkan kepada Object
Contohnya:
javascript
{ item:"", price:100, brand:{ name: "micorsoft", country: "US" } }
Ini boleh menyelesaikan masalah kebolehskalaan, dan kelajuan pertanyaan juga sangat pantas Jika maklumat jenama produk tidak dikemas kini dengan kerap, maka saya mengesyorkan ini. Walaupun tahap redundansi data meningkat, kelajuan pertanyaan dipertingkatkan Ini adalah anti-paradigma.
Jika maklumat jenama dikemas kini dengan kerap, maka lebih baik menggunakan ObjectId
Walaupun memerlukan satu pertanyaan lagi, ia meningkatkan kebolehpercayaan.