设计灵活的SQL模式[用于任务]

时间:2013-10-18 10:38:57

标签: php mysql sql

在SQL数据库中存储“任务”的有效方法是什么?让我们说上下文是RPG。 (这是上一个问题:How to store Goals (think RPG Quest) in SQL

总结一下,Quest可能是以下各项的组合:

Discover [Location]
Kill n [MOB Type]
Acquire n of [Object]
Achieve a [Skill] in [Skillset]
All the other things you get in RPGs

链接中列出的答案是:

对于Quest表:

| ID | Title | FirstStep (Foreign key to GuestStep table) | etc.

QuestStep表

| ID | Title | Goal (Foreign key to Goal table) | NextStep (ID of next QuestStep) 

我实际上认为它非常整洁,但我想添加两件事:

假设我想创建它,以便任务只能在特定日期激活(例如仅限M W F)和/或仅在特定时间范围内激活(例如万圣节)。这样做的理想方式是什么?

另一件事:假设我想要一个有两个步骤的任务和一个有8个步骤的任务。我们可以创建一个8列宽的表,但是我们会有很多空的空间。如果星星对齐并且我需要一个9 步骤任务怎么办?

QuestStep表实际上有一个NextStep,有点像链接列表,但是你可以无序执行的任务呢?

P.S:正如您所看到的,它可能是读取沉重的,而且架构可能是......非原理图。 NosSQL是一个竞争选择吗? (Redis似乎只有内存,所以我更有可能选择MongoDB)

0 个答案:

没有答案
相关问题