172 похожих чатов

У меня есть пару вопросов. Но сначала расскажу что делаю. Я

делаю в БД таблицу персонажа. У персонажа есть максимальное хп которое зависит от таких факторов как уровень, базовое хп, и в дальнейшем может быть еще что-то.

Как мне кажется правильным было бы все хранить в БД, но если Я хочу изменять какое-то значение например как хп, то мне стоит обращаться к нескольким таблицам, обновлять основную. Мне кажется правильно было бы использовать тригер для автоматического обновлении в рамках БД, а не бэкенда.

Тут встает вопрос, что ХП это совокупность нескольких таблиц, можно ли значения в колонке вытягивать математической формулой используя другие колонки, как в том же excel'e ? не используя тригер ( ну или сделать универсальную функцию, которую будет использовать несколько тригеров из разных таблиц?)

На сколько корректно Я мыслю, и на сколько корректна моя реализация? Мне кажется это сэкономит ресурсы и скорость, так как будет меньше запросов( хз на скольок ресурсоемкий тригер)

4 ответов

4 просмотра

Можно просто хранить историю действий, меняющих hp (урон, выпивание зелья и т.п. - положительные и отрицательные значения). А считать просто в момент обращения (sum, грубо говоря, по этой таблице для данного юзера). С максимальным hp - аналогично

Ilia-Gaevskii Автор вопроса
Ilia Gaevskii
Хм. Логично , чот Я все усложил..

Только оптимизировать запрос не забудьте, потому что действий будет дофига. Возможно, индекс на user_id надо будет повесить и т.п. - там уже по факту смотреть надо

Похожие вопросы

Обсуждают сегодня

читать файл максимально быстро? странный вопрос))
zamtmn
53
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
я имею в виду официально интегрированный в телегу? в том плане что не сливает переписку с пользователем?
Andrey
9
Кто-нибудь решал проблему с автоматическим скроллингом к выбранной ячейке в TDBGrid в Lazarus? Проблема в том, что есть допустим 3 столбца, третий столбец виден наполовину, вк...
Дмитрий Логинов
1
А чего сейчас в моде вместо Error для эксепшенов? А то я тут внезапно узрел что он не рекомендуется :) У Try::Tiny какой-то совершенно ужасный синтаксис если надо конкретные э...
Denis F
19
Приветствуем всех! Устали без проектов? Если вы программист и хотите получать стабильные заказы, компания Elif предлагает вам недельный курс по поиску проектов и их ведению. ...
Elif
1
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Чорт! Чорт! Чорт! Стала ставить через GetIt (написано же, что ручками не рекомендуется) Сломалось на дублировании моей TSkLabel. Чтож мне ее по всем проектам переименовывать в...
Катерина Свиридова
7
Привет. Сразу скажу, что на C/C++/Rust я не пишу, но тем не менее возникла потребность дебага C/C++/Rust кода. Суть: есть серверное приложение, которое периодически ведёт себ...
ninekeem 🐳
4
всем привет! углубившись в плюсы и начав изучать реверсинг понял, что без асм'а никуда со своими высокоабстрактными представлениями начал изучать механизмы асма, и не совсем п...
9
Карта сайта