Я пытаюсь структурировать свою базу данных и бэкэнд так, чтобы при обновлении одного объекта требовалось меньше вычислений и запросов. Я использую 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 изменится, мне нужно будет обновить все объекты, которые ссылаются на этот ингредиент.
Какие одно было бы лучшим решением, предполагая, что у приложения есть приличное количество пользователей?