Как правильно организовать связанные таблицы в базе данных MySQL?

Существует две таблицы - users и orders:

id first_name orders_amount_total
1 Вася 5634200
2 Петя 3982830
id user_id order_amount
1 1 200
2 1 150
3 2 70
4 1 320
5 2 20
6 2 10
7 2 85
8 1 25

Таблицы связаны по user id. Задача заключается в том, чтобы для каждого пользователя показывать сумму всех его заказов, их (заказов) может быть тысячи, может быть десятки тысяч, при этом и пользователей одновременно делающих запрос могут быть сотни и тысячи. Есть два варианта:

  1. При каждом новом заказе помимо записи в таблицу orders увеличивать счетчик orders_amount_total , а потом просто его показывать пользователю.
  2. Убрать поле orders_amount_total вовсе, а чтобы показывать сумму всех заказов JOIN-нить таблицы и использовать оператор SUM чтобы посчитать суммы всех заказов конкретного пользователя.

Какой вариант лучше использовать? Почему? Почему плох другой вариант?

P.S. я считаю что второй вариант лаконичный и правильный, учитывая что БД реляционная, но есть сильные сомнения насчет нагрузки на сервер, ведь выборка при подсчете суммы большая даже для одного пользователя, а их много.


Ответы (0 шт):