私はゲームサーバーを開発しています。すべてのプレーヤーの進行状況を保存する必要があるため、質問があります。私の場合に最適なデータストレージソリューションは何ですか?
いくつかの事実:現時点では、すべてのプレーヤーはMYsql-Databaseの行であり、一意のIDと名前を持っています。すべてのプレイヤーには世界があります。すべての世界には、(プレイヤーが前進するにつれて)成長する一連の地域が含まれています。そして、すべての地域には一連の風景が含まれています。ここに問題があります。
新しいランドスケープをできるだけ簡単に追加したいので、この単純な概念があります。doit(Stringコマンド)と呼ばれるメソッドを1つだけ含むインターフェイスlandscape.javaがあります。ランドスケープのすべての実装は、doitメソッドで凝ったことをします。コードを変更する必要があります。
今、私はすべてのプレイヤーの世界を保存する必要があります、ここに私が考えたいくつかのアイデア/オプションがあります
すべてをデータベースに保存するには、ランドスケープの実装ごとにテーブルを作成する必要があります。悪い解決策になるだろうimo
シリアル化は別のアイデアでした。単純に横向きにキャストすることを心配する必要がないので、完璧です。しかし、私には疑問があります。データをどのように編集する必要があるか、クラスを更新するときに何をするか、データへの変更をどのように展開するかです。
Hibernate、JPAなどのフレームワーク(私はそれらについて深い知識を持っていません、これは私の場合に役立つでしょうか?)
自分のファイル形式を書いたり、戦略を変更したり、他のアイデアを書いたりしますか?
最後にいくつかのおそらく重要な情報:
保存されたデータは編集可能である必要があります
保存はタイムクリティカルではなく、通常の時間に実行する必要があります
すべてのデータがメモリにキャッシュされるので、私はそれが高速であることを本当に気にしません、それはおそらく信頼できる必要があります
使用できるのはPostgreSQL/Mysqlとファイルシステムです。
私はこの分野の経験がないので、間違った方向に進んでいる場合はヒントを教えてください;)