Приветствую.
Во время разработки назрел вопрос оптимального хранения данных в базе. Для наиболее высокой продуктивности и уменьшения нагрузки.
У меня есть несколько вариантов, но я не могу решить какой будет лучше. Задача - хранение предметов игры (Вещи, оружие, предметы).
Использую Sequelize для работы с данными как с обычными объектами
1. Вариант (Использую на данный момент):
База данных разбита не несколько таблиц
То есть у каждого предмета есть свой владелец, который обозначен через belongsTo.
Из плюсов которые я вижу:
Минусы которые я вижу:
- При запросах большая нагрузка на БД в связи с тем, что в таблицах может быть тысячи предметов
2. Вариант:
Предметы хранятся непосредственно в аккаунте пользователя в виде JSON
Плюсы которые я вижу:
- При запросах к БД, уменьшается нагрузка на таблицы предметов, которых может быть тысячи
Минусы которые я вижу:
- Большой вес аккаунта
Повторюсь, прямых запросов Пользователь -> БД не делаю, при создании предмета создается "инстанция предмета" с которым взаимодействует игрок.
Если у кого то есть опыт в этом, хотелось бы послушать.
Во время разработки назрел вопрос оптимального хранения данных в базе. Для наиболее высокой продуктивности и уменьшения нагрузки.
У меня есть несколько вариантов, но я не могу решить какой будет лучше. Задача - хранение предметов игры (Вещи, оружие, предметы).
Использую Sequelize для работы с данными как с обычными объектами
1. Вариант (Использую на данный момент):
База данных разбита не несколько таблиц
- Аккаунты
- Оружие
- Одежда
- Предметы
То есть у каждого предмета есть свой владелец, который обозначен через belongsTo.
Из плюсов которые я вижу:
- Возможность редактирования всех предметов выбранного типа для балансирования виртуального мира
- Возможность хранения координат предметов, которые можно использовать после рестарта сервера (Они остаются на тех местах, где их выкинули до рестарта)
Минусы которые я вижу:
- При запросах большая нагрузка на БД в связи с тем, что в таблицах может быть тысячи предметов
2. Вариант:
Предметы хранятся непосредственно в аккаунте пользователя в виде JSON
Плюсы которые я вижу:
- При запросах к БД, уменьшается нагрузка на таблицы предметов, которых может быть тысячи
Минусы которые я вижу:
- Большой вес аккаунта
Повторюсь, прямых запросов Пользователь -> БД не делаю, при создании предмета создается "инстанция предмета" с которым взаимодействует игрок.
Если у кого то есть опыт в этом, хотелось бы послушать.