Как смоделировать несколько «использований» (например, оружия) для пригодного для использования инвентаря / объекта / предметов (например, катана) в реляционной базе данных - PullRequest
1 голос
/ 21 ноября 2010

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

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

Например, Katana в настоящее время является строкой в ​​базе данных "items". Чтобы превратить его в оружие, и что-то вроде этого, я думал, что у меня будет база данных «черт» и таблица item_traits, которая соединяет их.

// Objects and their basic data

item_id | item | material | etc
1 | Naginata | steel | etc


// Things that objects can do

trait_id | trait
1 | weapon
2 | holdable

// How those objects do those things, e.g. powerfully, weakly, while on fire

_item_id | _trait_id | item_trait_data
1 | 1 | damage: 5, damage_type: sharp, whatever, etc

Я не совсем уверен, как смоделировать дополнительные данные, которые в результате (например, урон, нанесенный мечом, тип_повреждения и т. Д.).

Я также не особенно рад, что весь предмет будет храниться в более чем одном месте, например чтобы создать копию предмета с другим именем, например, «короткий меч», мне нужно было бы скопировать несколько таблиц, чтобы создать дубликат предмета.

Есть ли лучший способ выложить вещи, которые мне не хватает?

1 Ответ

0 голосов
/ 21 ноября 2010

Ну, различные виды оружия могут иметь общие умения.
Например, «острое» оружие может включать в себя длинные мечи, короткие мечи, кинжалы и катаны;все они могут иметь одинаковый базовый урон, а также несколько дополнительных специальных вещей, относящихся к конкретному оружию в отдельности.
Подобным образом, "тупое" оружие может включать в себя молотки, булавы и цепочки.
Так что я думаю, что вы должны представитьКонцепция «тип оружия», так что вам не нужно копировать вещи для каждого типа оружия.

...