私はアチーブメントシステムのデータベースを作成しています(Blizzardゲームで見られるようなものです)。ゲーム内のすべてのアチーブメントの現在の進行状況を表示するGUIが必要です。つまり、GUIにデータを入力するには、ユーザーのすべてのアチーブメントの進行状況を照会する必要があります。私はおよそ100の成果を持つことを計画しています。
これは設計上の問題を引き起こします。最大100ビットフィールドの進行状況をクエリするためのデータベースとクエリコードを設計するための最良の方法は何ですか?
強引な方法は、アチーブメントの行全体を取得してから、行の各フィールドに対してハードコードされた文字列比較を実行して、処理しているアチーブメントを判別することであるように思われます。
別の可能な解決策は、テーブルの列インデックスに基づいて大きなswitchステートメントを作成し、各ケースの各アチーブメントを処理することです(テーブルを変更しないか、多くのC ++コードをリファクタリングする必要があります)。
私はあなたたちがこれのために持っているかもしれない他のデザインを聞いて興味があります。ありがとう!