我有一项任务是设计一个数据库,用于存储在这些迷宫中播放的迷宫和游戏。
迷宫本质上是一个网格,包含奖品和陷阱。作业并不是更具体:它要求我们找到某种通用规则来表达游戏中发生的事件和这些事件的规则。
我已经提出了一个简单的概念架构:
你认为根据我对作业的描述,这是一个很好的解决方案吗?我该如何改进呢?
答案 0 :(得分:1)
迷宫是一个网格,每个节点都包含数据。 每个节点包含几个东西: 1)到其他节点的链接列表 2)该节点可用的项目列表
其他一切都可以表达为那些。
这表示一个表MAZE,包含有关迷宫的基本数据,如ID,NAME,DESCRIPTION等。 然后有一个表NODE,包含有关节点的数据。 ID,NAME,COORDINATES和MAZE_ID 第3个ITEM,包含ID,ITEM_NAME,NODE_ID,ITEM_TYPE以及其他内容。
为了加快查找操作,您可能需要一个仅包含MAZE_ID和NODE_ID的链接表MAZE_NODE,以及具有类似NODE_ID和ITEM_ID字段的NODE_ITEM表。
可能需要其他列和表来保存不特定于数据层次结构的信息(例如有关项目统计信息,节点环境条件等信息)。
这只是迷宫的一个非常基本的数据结构。 对于传说故事,您至少需要包含文本,章节,每章启动条件等的表格等。 这几乎与迷宫无关,但条件可能包括玩家在迷宫中的特定位置,或告诉他去特定的位置。
答案 1 :(得分:0)
您应该将任务分成
1)存放迷宫 2)存储事件
考虑到(2)您可以使用关系数据库记录事件,甚至包括在列出列的单个表中移动您的英雄:
游戏|时间|演员| eventtype | EVENTDATA
(不要为每场比赛创建一张桌子;)
考虑(1): 您应该将迷宫存储为网格。这可以通过例如数组来实现。每个网格单元描述其类型的单个字节(能够存储墙,免费,加上254项)。这取决于您存储此数组的位置,但如果将其存储在数据库中,请不要尝试将迷宫和单元格拆分为不同的表(您描述的1:n关系),只需将迷宫存储为包含在表格中的BLOB所有迷宫的BLOB。