当前位置: 首页 > 面试题库 >

如何在SQL中存储目标(认为是RPG Quest)

马嘉勋
2023-03-14
问题内容

今天有人问我他们应该如何在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

我能想到的最好的是:

Quest 1-* QuestStep
QuestStep 1-* MobsToKill
QuestStep 1-* PlacesToFind
QuestStep 1-* ThingsToAcquire
QuestStep 1-* etc.

这似乎有些笨拙-他们是否应该存储某个描述的查询(或公式或???)

任何建议表示赞赏


问题答案:

我会创建这样的东西。

对于Quest表:

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

QuestStep表

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

当然,这是最困难的部分,我们如何描述目标?我想说的是在目标表中为目标创建一条记录,并将目标的每个字段(例如,要杀死多少种小怪,要访问的位置等等的小怪)保存在目标表中,因此:

目标表:

| ID | Type (type is one from an Enum of goal types) |

GoalFields表

| ID | Goal (Foreign key to goal) | Field | Value |

我知道这可能有点含糊,所以这是数据库中dat可能看起来像的一个示例。

任务表

| 0 | "Opening quest" | 0 | ...
| 1 | "Time for a Sword" | 2 | ...

QuestStep表

| 0 | "Go to the castle" | 0 | 1 | ...
| 1 | "Kill two fireflies" | 1 | NULL | ...
| 2 | "Get a sword" | 2 | NULL | ...

目标表

| 0 | PlacesToFind |
| 1 | MobsToKill |
| 2 | ThingsToAcquire |

GoalFields表

| 0 | 0 | Place | "Castle" |
| 1 | 1 | Type | "firefly" |
| 2 | 1 | Amount | 2 |
| 3 | 2 | Type | "sword" |
| 4 | 2 | Amount | 1 |


 类似资料:
  • 问题内容: 我的数据库中有两个表 优惠券表 id (int) Name (nvarchar(max)) NoofUses (int) 优惠券使用表 id(int) Couponid(int) CreateDate(datetime) 每当用户单击优惠券时,都会在表中输入包含该优惠券ID的条目 现在,表中有一列称为。我想在存储过程中编写一个游标,该存储过程遍历表并查看一张优惠券有多少行,并将该数字填

  • 我正在努力使用Hibernate在我的基于Spring的应用程序中启用多租户。我创建了一个自定义实现的和重写的方法来确定租户标识符。当我提供硬编码的租户标识符时,应用程序工作正常。 但是随后出现了一个要求,即根据请求头中的值从数据库默认模式中的表中获取租户标识符。我在许多地方搜索了这个问题,并做了一些打击和试验,但收效甚微。 任何有关这方面的帮助都将不胜感激。请让我知道我需要提供哪些信息来更好地理

  • 问题内容: 我使用的是SQL Server2005。我创建了一个大多数时候都可以使用的存储过程,但是我发现了一个实例,它无法满足我的要求。 目前,代码执行的操作是这样的 输出变量在哪里。 因此,我可以得到一个数字,但我真正想要的只是SQL错误。 像 Hey之类的 东西 ,我不能这样做,因为在此列上有fk约束 或其他 约束 。我在msdn http://msdn.microsoft.com/zh-

  • 我如何匿名这使密码不显示?是否创建文件并将密码存储为变量,然后在.cfg conn字符串中引用该变量? 我阅读了以下内容,但有一个示例会有所帮助:https://airflow.readthedocs.io/en/stable/howto/set-config.html

  • 问题内容: 我遇到以下(非常简单)的问题。我想编写一个(Oracle)SQL查询,大致如下: 在PL / SQL中,可以使用RECORD类型(和/或%ROWTYPE),但是据我所知,这些工具在SQL中不可用。但是,该函数需要完整的行。如何将整个行传递给存储的函数? 谢谢! 问题答案: 不要以为可以。 使用所需的所有参数创建函数,或者传递行的ID并在函数内执行SELECT。

  • 问题内容: 在我的应用程序中,我正在解析一个xml文件。在xml文件中,我有50个同名标签,现在我想将所有作为问题命名的标签存储为数组…。 在保存的那些标签中,我只希望在文本视图中放置一个问题标签…。 如何执行此操作.... pls帮助我..... 问题答案: