ここでいう「RPG」とは、ロールプレイングゲームの意味でよろしいでしょうか?
実装方法はいろいろあるかと思いますが、他の方が指摘するように、どういう形態のものなのか提示してもらえると、ヒントは集まるかもしれません。
- 開発言語は?
- 実行環境は?(スマホ?PC?)
- アプリ単体で完結するもの?
・アプリ内DBを使う?
・アプリとは別にDBサーバーを外部に用意する?
・運営が存在するソーシャルゲーム?
アイテム管理にDBを用いる方法ですが、上記のほか以下も考慮する必要があるかも。
- 使用する毎にDBと通信する方法。
- ゲーム開始時にDB内のキャラクター別のアイテム保有情報を抽象クラスへ取込み、ゲーム中は抽象クラスで管理し、ゲーム終了時(またはセーブ時)にDBへ反映させる。
速度も考慮する必要があるのなら、DBとの処理のタイミングやテーブル設計も絡んできます。
あと私はオンラインショップ構築の経験しかないので、それに偏った知識で書いてみます。
キャラクターマスターテーブル
アイテムマスターテーブル
キャラクター別アイテムテーブル
キャラクターID | アイテムID | 保有数 |
---|
1 | 1 | 200 |
1 | 2 | 1 |
2 | 1 | 50 |
上記では、勇者は「回復薬」を200個と「剣」1本を保有しており、賢者は「回復薬」50個を保有しています。
※保有と装備の違いについては省きます。
キャラクターがアイテムを初めて獲得した場合は、キャラクター別アイテムテーブルへINSERTが必要ですし、既に持っているアイテムの場合は、保有数のUPDATEが必要となります。
例えば勇者が「回復薬」を1個使用した場合、キャラクター別アイテムテーブルを更新します。
SQL
1UPDATE キャラクター別アイテムテーブル
2SET
3保有数 = 保有数 - 1
4WHERE
5キャラクターID = 1 -- 勇者
6AND
7アイテムID = 1 -- 回復薬
8;
ご希望の添えた回答ではないかも知れませんが、何かのお役に立てれば幸いです。