Лучший дизайн стола - PullRequest
       2

Лучший дизайн стола

0 голосов
/ 28 сентября 2011

Я и несколько других в настоящее время работаем над игрой, которая будет использовать MySQL для сохранения персонажей. В настоящее время у нас есть таблица, содержащая информацию о персонаже (имя пользователя, пароль, идентификатор, инвентарь и сундук с предметами).

Мы пытаемся придумать лучший способ обработки данных сундука с предметами. На данный момент мы просто храним его в 2 столбцах. Сундук для хранения персонажа может вместить около 300 предметов, причем каждый предмет может иметь размер стека, равный максимальному значению целого числа. Мы сохраняем идентификаторы товаров в одном столбце, а соответствующие суммы товаров - в другом.

Однако мы обсуждали этот дизайн и думали о том, как его улучшить. Прямо сейчас у нас есть следующие идеи:

  • Создать новую таблицу только для хранения предметов. В этой таблице есть столбец для идентификатора игрока (первичный ключ) из ранее упомянутой таблицы пользователей, столбец для номеров идентификаторов предметов и еще один столбец для сумм

  • Создать новую таблицу только для хранения предметов. В этой таблице есть столбец для идентификационного номера игрока (первичный ключ) из ранее упомянутой таблицы пользователей и столбец для всех идентификационных номеров и сумм, разделенных разделителями.

  • Оставь как есть

Мы ожидаем, что будет создано и использовано около 10 000 учетных записей с хорошей возможностью создания новых. Мы просто не уверены в том, что будет лучшим в производительности

1 Ответ

1 голос
/ 28 сентября 2011

В этом случае наличие 1 или 2 таблиц оказывает большее влияние на масштабируемость, чем на производительность.Лучший подход - иметь 3 таблицы.1 для игроков, 1 для предметов и 1 для предмета игрока отношений.

player
id   name  

item
id   amount description

player_item
id_player id_item

Наличие этой дополнительной таблицы для предметов позволит вам иметь типы предметов.Вы сможете легко добавлять элементы дополнительной информации, например, описание, и вам нужно будет только установить сумму один раз.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...