Я работаю в POS-системе, и я использую Firebase для бэкэнд. Одним из отчетов, которые мне нужно сделать, является «наиболее/менее продаваемая продукция».Идеи построения структуры Firebase
У меня есть структуры, как этот /sales/
:
"1234": {
"date": 1234567890, // timestamp
"products": {
"coca-cola-clasica-355-ml": {
"quantity": 3,
"salesPrice": 500,
"costPrice": 400
},
"coca-cola-clasica-600-ml": {
"quantity": 6,
"salesPrice": 900,
"costPrice": 700
}
},
"subtotal": 6400,
"total": 6400
},
"5678": {
"date": 1234567890, // timestamp
"products": {
"taqueritos-chile-picante": {
"quantity": 2,
"salesPrice": 100,
"costPrice": 80
},
"coca-cola-clasica-600-ml": {
"quantity": 4,
"salesPrice": 900,
"costPrice": 700
}
},
"subtotal": 200,
"total": 200
}
и/продукты /:
{
"coca-cola-clasica-355-ml": {
"costPrice": 350,
"name": "Coca Cola Clasica 355 ml",
"salesPrice": 500,
"stock": 99,
"supplier": "femsa-coca-cola",
"tax": false,
},
"coca-cola-clasica-600-ml": {
"costPrice": 700,
"name": "Coca Cola Clasica 600 ml",
"salesPrice": 900,
"stock": 99,
"supplier": "femsa-coca-cola",
"tax": false,
},
"taqueritos-chile-picante": {
"costPrice": 80,
"name": "Taqueritos Chile Picante",
"salesPrice": 100,
"stock": 500,
"supplier": "dinant",
"tax": true
}
}
Так что, если я должен получить «самые продаваемые продукты» сейчас я должен перебрать все продажи и добавлять количество каждый раз, когда я нашел продукт, после этого закажите результаты и получите самые продаваемые продукты, и это отстой.
У меня есть две идей, чтобы исправить это:
- Добавить свойство в
/products/
как «soldTimes» и добавить каждое количество раз, когда продукт продается. - Создайте третий объект, например
soldProducts
, и подсчитайте количество проданных продуктов для каждого при каждом покупке клиента.
Подходит ли какой-либо из этих 2 подходов? Я что-то пропустил в Firebase?
Спасибо за помощь.
Спасибо! Это определенно лучше и быстрее читать. – fmontes