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

问题描述 投票:-1回答:1

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

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

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

您认为哪种方法最适合使用?

mysql redundancy
1个回答
0
投票

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

instance_id | item_id
1000          5
1001          5
1002          5
1023          6
1024          6
...
© www.soinside.com 2019 - 2024. All rights reserved.