2012-05-24 1 views
-1

У меня есть игра, и когда действие закончено, мне нужно дать пользователю элемент. Элементы будут иметь уникальный идентификатор. Каждое действие также сохраняется и описано в их собственной таблице. Каждое действие будет иметь свою собственную награду, но я хочу, чтобы действие могло давать различные количества предметов, возможно, ни одного.Структура базы данных MySQL для игры: Какой подход, по вашему мнению, был бы лучшим в использовании?

До сих пор у меня есть три подхода:

  1. Установить три столбца в каждой строке действий для элементов идентификаторов. Недостатком является то, что он оставляет избыточные пустые ячейки, когда действие не дает трех элементов, но вверху является то, что это просто.
  2. Установите только один столбец, который содержит несколько значений, разделенных пробелами. Это немного меньше, чем указано выше, но для разделения значений требуется немного больше обработки.
  3. Создайте новую таблицу для вознаграждения и установите каждую строку с элементом и действием, для которого предназначен элемент. Затем, когда действие завершено, он вызывает все строки с идентификатором действия из таблицы вознаграждений. Это почти нулевое избыточность, но требует дополнительного запроса.

Какой подход вы считаете лучшим в использовании?

ответ

0

У каждого элемента есть идентификатор элемента. Тогда каждый экземпляр элемента будет иметь уникальный идентификатор экземпляра. Затем вы можете хранить несколько экземпляров одного и того же элемента, единственная разница между каждым экземпляром - это идентификатор экземпляра. например мяч имеет идентификатор предмета 5, ключ имеет идентификатор предмета 6.

instance_id | item_id 
1000   5 
1001   5 
1002   5 
1023   6 
1024   6 
... 
+0

Не то, что я ищу, требуется действие, чтобы дать предмет в качестве награды. – user1415803

+0

Итак, тогда. Я немного смущен. Вы просите код? Или подход к созданию базы данных? – kevin628

+0

Nvm получил его. Thnx в любом случае – user1415803