Saya menggunakan Mongoose untuk mendesain skema. Saya memiliki dua koleksi bernama Restoran dan Produk. Saya telah menyimpan semua detail restoran di Koleksi Restoran. Di Koleksi Produk, saya memiliki bidang bernama restaurantCode yang disajikan sebagai _id di Koleksi Restoran dan memetakan keduanya koleksi berhasil. Sekarang di sisi Front-End saya menggunakan Angular 5, saya telah memberikan kendali kepada Pemilik Restoran untuk menyortir produk sesuai keinginannya. Untuk melakukan operasi ini, saya telah membuat bidang baru di koleksi Produk bernama sortIndex dan menetapkan nilai dari 0 hingga jumlah produk yang tersedia per restoran. Memposting data tiruan saya di bawah
Detail Restoran
1)
_id : "ABC",
"Name" : "Eat Well Restaurant",
2)
_id : "DEF",
"Name" : "Eat ALL Restaurant",
Rincian Produk
1)
"name": "Pizza",
"Price": 20,
"restaurantCode" : "ABC",
"sortIndex": 0
2)
"name": "Juice",
"Price": 30,
"restaurantCode" : "ABC",
"sortIndex": 1
3)
"name": "Fruit",
"Price": 20,
"restaurantCode" : "ABC",
"sortIndex": 2
4)
"name": "Chicken Rice",
"Price": 20,
"restaurantCode" : "DEF",
"sortIndex": 0
5)
"name": "Chicken Fry",
"Price": 20,
"restaurantCode" : "DEF",
"sortIndex": 1
6)
"name": "Chicken Briyani",
"Price": 20,
"restaurantCode" : "DEF",
"sortIndex": 2
Saya menampilkan produk berdasarkan nilai sortIndex. Sekarang, setiap kali pengguna melakukan Operasi pengurutan di sisi ujung depan (Sudut) saya akan menetapkan ulang nilai sortIndex. Masalahnya adalah setiap kali Pemilik Restoran menghapus produk saya harus menetapkan ulang nilai sortIndex untuk semua produk yang terkait dengan restoran tertentu. Saya merasa ini adalah operasi yang mahal. Ini adalah pendekatan yang saya gunakan sampai sekarang dan berfungsi dengan baik. Saya ingin tahu apakah ada pendekatan yang lebih baik untuk masalah ini, saya yakin akan ada pendekatan tersebut. Tumpukan saya adalah NodeJS,Mongoose,MongoDB,Angular(Front-End) Tinggalkan ide/pemikiran Anda. Terima kasih