База данных моделирования для браузерной игры - PullRequest
2 голосов
/ 05 мая 2011

Я работаю над браузерной игрой, разработанной с помощью symfony для школьного проекта.

В моей схеме у меня есть игрок стола и инвентарь стола (который содержит различные предметы) с отношением один к одному.

Я не уверен, как я могу построить инвентарь стола.После размышления я нашел два способа сделать это:

1.

TABLE inventory
  id
  id_player
  item1
  item2
  item3
  ...

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

2.

TABLE inventory
  id
  id_player
  item
  quantity

Я думаю, что этот способ лучше, но количество записей быстро увеличится, потому что у меня есть одинстрока за игроком за элементом.

Есть другие методы, которые более эффективны?Если нет, то что лучше в обоих?

Ответы [ 2 ]

6 голосов
/ 05 мая 2011

Второй подход должен подойти, если есть индекс для id_player. Я бы не стал беспокоиться о его использовании. Если каждая строка занимает 25 байт, и у каждого игрока есть 400 типов предметов, а у вас 1 миллион пользователей, это все равно всего 10 гигабайт.

4 голосов
/ 05 мая 2011

Чтобы завершить приведенный выше ответ, вы можете добавить таблицу со своими элементами, а затем просто изменить столбцы item на id_item .

TABLE player     
  id
  player_name
  ... player characteristics ...

TABLE inventory
  id
  id_player
  id_item
  quantity

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