0

「クエスト」を 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 を使用する可能性が高くなります)

4

0 に答える 0