游戏的MySQL数据库结构:您认为哪种方法最适合使用?

时间:2012-05-24 19:07:13

标签: mysql redundancy

我有一个游戏,当一个动作完成后,我需要给用户一个项目。每个项目都有一个唯一的ID。每个动作也存储在自己的表中并进行描述。每个动作都有自己的奖励,但我想要一个动作能够提供不同数量的项目,可能没有。

到目前为止,我有三种方法:

  1. 在项目ID的每个操作行中设置三列。缺点是,当行为不给出三个项目时,它会留下多余的空单元格,但好处是它很简单。
  2. 仅设置一个包含多个以空格分隔的值的列。它比上面的冗余少一些,但它需要更多的处理来分离值。
  3. 为奖励创建一个新表,并为每一行设置一个项目以及该项目所针对的操作。然后,当操作完成时,它将从奖励表中调用具有操作ID的所有行。这几乎没有冗余,但需要额外的查询。
  4. 您认为哪种方法最适合使用?

1 个答案:

答案 0 :(得分:0)

让每件商品都有商品ID。然后,项目的每个实例都将具有唯一的实例ID。然后,您可以存储同一项的多个实例,每个实例之间的唯一区别是实例ID。例如一个球的物品ID为5,一个物品ID为6。

instance_id | item_id
1000          5
1001          5
1002          5
1023          6
1024          6
...