Re: «эффективность» - лучше всего не слишком беспокоиться об эффективности базы данных в начале проекта.Преждевременная оптимизация - распространенная ошибка, которую следует избегать.
Лучше сосредоточиться на своих потребностях и проектировать их.Позже вы сможете проверить, где находятся узкие места в производительности, и поработать над их решением.
Для небольших баз данных (десятки тысяч строк) даже «неэффективные» запросы часто выполняются очень быстро, учитывая сегодняшние серверы ипрограммное обеспечение.
Не усложняйте Я предлагаю вам избегать сочетания клавиш и семантики перегрузки таблиц, если в этом нет особой необходимости.
Предложение У вас естьдва типа данных: информация о текущем билете и таблица истории для старых «итоговых» значений.
Таким образом, предпочтение будет отдано вашей версии 2.
ticket
id
field_a
field_b
total # current_total
ticket_total # history of ticket total field
id
ticket_id
total
create_time
Также «Всего» звучит как совокупность чего-то.Я предлагаю вам попытаться придумать название поля, которое будет более наглядным.- Какое поле всего?"total_worktime"?
Добавлено Не забудьте добавить индексы для таблиц.Индексируйте все, что вы используете для поиска.Например, есть ли в билете таблица customer_id?Убедитесь, что он проиндексирован.