私は JDBC/Derby を使用して、作成中のパズル ゲームのハイスコア データを保存しています。ゲームの性質上、フィルターに基づいてハイスコア データを表示できると便利です (つまり、このレベルでの最高スコアを表示したり、このコンピューターでの最高スコアを表示したりします)。
このゲームには「キャンペーン」モードもあり、プレイヤーは目標に向かって取り組み、実績をアンロックします。
現在、キャンペーン データは、ディスクに書き出すシリアル化可能な Java ファイルに保存されています。
ただし、ハイスコア データはデータベースに保存され、ハイスコア テーブルの PlayerID はキャンペーン ファイルにリンクされるため、キャンペーン データもデータベースに保存する必要があるように感じます。
私が直面している問題は、データをまったく分解できないことです。「プレーヤー」テーブルは、各列が目標または達成のステータスを表す 100 以上の幅になるように思われます。
私はデータベースの専門家ではありません。これがひどいデザインかどうかはわかりません。私は通常のフォーム 1 ~ 5 について読み、各フォームに準拠していると信じていますが、何か間違ったことをしているのではないかと疑っています。
データベースのハイスコアが本当に欲しいのですが、それらは完全に適合しています。ただし、副作用として、キャンペーンのブール値やその他の情報もデータベースに保存するよう強く求められています。一部のデータがファイルに書き込まれ、他のデータがデータベースに書き込まれるのは奇妙に感じます。特に 2 つのものが相互に参照している場合はそうです。
私は何か間違ったことをしていますか?実際に通常の形式に従っている限り、100 列または 2 列のテーブルを使用しても問題ありませんか?