Какой из них лучше - вычислить поле объекта с глубокой населенностью ИЛИ вычислить поле при сохранении объекта и обновить его при необходимости? - PullRequest
0 голосов
/ 25 марта 2020

Я пытаюсь структурировать свою базу данных и бэкэнд так, чтобы при обновлении одного объекта требовалось меньше вычислений и запросов. Я использую Apollo-сервер, Mon goose и MongoDB.

У меня есть

FoodPack MANY---MANY Food

Food MANY---MANY Ingredient

Каждый объект там имеет свойство kcal. Прямо сейчас, если я сделаю запрос allFoodPacks, мне нужно заполнить все Foods, а в Foods - все ингредиенты, чтобы я мог вычислить столбец FoodPack kcal.

Я сделал такую ​​структуру, потому что, когда я обновляю один kcal одного ингредиента, мне не нужно обновлять также все поля Food и FoodPack, так как они рассчитываются по запросам с населением.

ДРУГОЕ решение - вычислить FoodPack kcal во время создания объекта FoodPack. Таким образом, запрос к FoodPack и его столбцу kcal не потребует глубокого заполнения, НО, если ингредиент kcal в Foodpack's Foods изменится, мне нужно будет обновить все объекты, которые ссылаются на этот ингредиент.

Какие одно было бы лучшим решением, предполагая, что у приложения есть приличное количество пользователей?

...