2010-11-21 3 views
1

Also arbeite ich an der Erweiterung der Verwendung von Elementen über www.ninjawars.net, und ich bin nicht genau sicher, wie man sie flexibel in der von uns verwendeten relationalen Datenbank darstellt.Wie man mehrere "Verwendungen" (zB Waffe) für verwertbares Inventar/Objekt/Objekte (zB Katana) in einer relationalen Datenbank modelliert

Ich kann den falschen Baum werden bellen, so fühlt sich frei, Vorschläge in anderen Richtungen zu machen, aber ich denke noch, dass jedes Element relational „Tags“ haben sollte.

Zum Beispiel ist ein Katana derzeit eine Zeile in der "Artikel" -Datenbank. Um es zu einer Waffe und zu einer haltbaren Sache zu machen, dachte ich, dass ich eine Datenbank mit "Eigenschaften" und eine Tabelle mit Item_Traits haben würde, die die beiden verbindet.

// 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 

Ich bin nicht wirklich sicher, wie die zusätzlichen Daten zu modellieren, dass die Ergebnisse (zum Beispiel der Schaden, den ein Schwert tun, die damage_type, etc).

Ich bin auch nicht besonders glücklich darüber, dass das ganze ein Element würde in mehr als einem Ort gespeichert werden, zum Beispiel Um eine Kopie eines Gegenstands mit einem anderen Namen, wie ein "Kurzschwert", zu erstellen, müsste ich aus mehreren Tabellen kopieren, um den doppelten Gegenstand zu erstellen.

Gibt es einen besseren Weg, um dieses Zeug zu verraten, dass ich vermisse?

Antwort

0

Nun, verschiedene Arten von Waffen können gemeinsame Kunststücke teilen.
Zum Beispiel können "scharfe" Waffen Langschwerter, Kurzschwerter, Dolche und Katanas enthalten; Sie alle könnten einen ähnlichen Grundschaden teilen, plus ein paar zusätzliche spezielle Dinge, die die eigentliche Waffe einzeln betreffen.
In ähnlicher Weise können "stumpfe" Waffen Hämmer, Streitkolben und Dreschflegel enthalten.
Also ich denke, dass Sie das Konzept eines "Waffentyps" einführen sollten, also müssen Sie nicht die Dinge für jeden Waffentyp kopieren.

Verwandte Themen