「クエスト」を SQL データベースに保存する効率的な方法は何ですか? コンテキストが RPG だとしましょう。(これは以前の質問でした: SQL で目標 (RPG クエストを考える) を保存する方法)
クエストを要約すると、次の組み合わせになる場合があります。
Discover [Location]
Kill n [MOB Type]
Acquire n of [Object]
Achieve a [Skill] in [Skillset]
All the other things you get in RPGs
リンクに記載されている答えは次のとおりです。
クエストテーブルの場合:
| ID | Title | FirstStep (Foreign key to GuestStep table) | etc.
QuestStep テーブル
| ID | Title | Goal (Foreign key to Goal table) | NextStep (ID of next QuestStep)
私は実際にはかなりきれいだと思いますが、追加したいことが2つあります。
クエストが特定の日 (例: MWF のみ) のみ、および/または特定の期間 (例: ハロウィン) にのみアクティブになるように作成したいとします。これを行う理想的な方法は何ですか?
別のこと: 2 つのステップを持つクエストと 8 つのステップを持つクエストが必要だとしましょう。幅が 8 列のテーブルを作成できますが、空きスペースが多くなります。星が揃っていて、幅 9ステップのクエストが必要な場合はどうなりますか?
QuestStep テーブルには実際にはリンク リストのような NextStep がありますが、順不同で実行できる Quest についてはどうでしょうか。
PS: ご覧のとおり、読み取り負荷が高い可能性があり、スキーマは潜在的に... 非スキーマです。NosSQL は競合するオプションですか? (Redis はメモリのみのように見えるので、MongoDB を使用する可能性が高くなります)