MySQL-キャラクターインベントリの保存


7

キャラクターの在庫を保存する最良の方法は何ですか(タイプと数量の値を持つ各アイテムで構成されます)。私が考えることができる唯一の方法は、「テキスト」タイプのフィールドを使用して、インベントリが読み込まれるたびにその値を解析することです。より良い方法やデータ構造はありますか?


ゲームの概要を教えてくれませんか?それはブラウザベースになるのでしょうか、それともクライアントアプリケーションになるのでしょうか?サーバーに接続できるクライアントはいくつですか?サーバー側ではどの言語を使用していますか?
Ali1S232

3
「テキスト」が最悪の選択だと思います。「アイテム」テーブルと「プレーヤー」テーブル間の関係を構築します。全体として、これはおそらくdba.stackexchange.com
bummzack

アドバイスありがとうございます。私はdba.stackexchange.comに気づいていませんでした-明らかにそれがより良い選択です!
jSherz

回答:


6

標準的なデータベース設計について読んでください。特に正規化された形式。アプローチは3つのテーブルを持つことです:

character_idおよびその他のデータを持つ文字

item_idとその他のデータ(名前、重量など)を持つアイテム

character_id、item_id、quantityを持つ在庫。

プレーヤーのインベントリは「SELECT items.name FROM items、inventory WHERE inventory.character_id = 'THECHARSID'」のように表現できます。もちろん、他の質問に基づいて、これを処理するORMを使用することをお勧めします。SQLAlchemyのような関係と後方参照を見てください。

在庫「スロット」の概念が必要な場合、それは在庫表の別の列です。(IE:キャラクター32423はスロット0(ヘッドスロット)にタイプ832のアイテムを持っています)各アイテムに固有の統計(耐久性/アップグレード)がある場合、アイテムテーブルにアイテム固有のデータが含まれ、リンクがあるようなことができますそのタイプのすべてのアイテムに共通する基本統計を定義するitem_base列に追加します。


助けてくれてありがとう。ORMとSQLAlchemyを調べます。
jSherz

2
それでも使用するSQLサーバー製品を決定している場合は、必ずPostgreSQL(フリーでオープンソースであり、コミュニティーに最適化のナットが多く含まれている)を確認してください。複数のサーバーが必要になる場合があるため、あなたはおそらく、PostgreSQLが今組み込まれていることをレプリケーション機能を知るために興味を持つだろうと長い時間のために需要の高い環境での大規模なデータベースを扱うによく適合されています: postgresql.org
ランドルフ・リチャードソンを
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.