Итак, я работаю над расширением использования предметов по адресу 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
Я не совсем уверен, как моделировать дополнительные данные, результаты (например, повреждение, что меч будет делать, то damage_type, и т.д.).
Я также не особо счастлив, что весь элемент будет храниться в нескольких местах, например. чтобы создать копию элемента с другим именем, например «короткий меч», мне пришлось бы копировать из нескольких таблиц, чтобы создать дубликат элемента.
Есть ли лучший способ выложить этот материал, который мне не хватает?