我正在用Java和mysql进行一个小型游戏。我遇到了一些如何正确设计我的表的困难。我需要一些建议:让我具体的,我有3类:如何为这种情况设计数据库?
节点
public class Node {
private Integer id;
private Integer position;
private Integer foodTax;
private Boolean hasTreasureMap;
private Integer currentPlayer; // playerId
宝
public class Treasure {
Integer id;
private Integer position; // nodeId
private Integer goldValue;
球员
public class Player {
private Integer id;
private Integer wealth;
private Integer strength;
private Integer start;
private Integer goal;
private Integer currentPosition; // nodeId
private Integer currentGoal; // another nodeId
private Vector<Integer> path;
private Vector<Integer> treasureIds;
private int currentMoveIndex;
Graph<Integer> telescope;
我是一个新手到MySQL和一般的数据库。我认为在这种情况下我必须使用外键。但是,我仍然很模糊如何实现它。此外,还有几个限制条件:
- 宝藏的位置是固定的。
- 节点位置已修复。
- 只有玩家的位置可以改变。
- 一个节点一次只能有一个播放器(我试图尽量简化它,如果在同一节点有两个播放器,我不知道该如何处理它)
所以我认为这里唯一的外键是类节点的'currentPlayer'id?如果我错了,请纠正我。任何想法?
最好的问候,陈 阮
你想存储什么样的数据?你打算怎么处理它?当不清楚它们将用于什么时,很难帮助设计表格。 – FrustratedWithFormsDesigner 2010-12-01 16:24:47
我的地图是Integer的二维数组。所以所有的位置都是整数。绘图时,我会将此整数映射到坐标(x,y)。但是这根本与数据库无关。感谢您的回复。 – Chan 2010-12-01 16:28:19