代码之家  ›  专栏  ›  技术社区  ›  Extrakun

为库存系统设计方案…我应该计算数量还是跟踪它?

  •  1
  • Extrakun  · 技术社区  · 14 年前

    我正在为一个游戏做清单,而不是一个FF风格的游戏。我有两个想法,想知道哪一个更好

    1. 将数量作为一个字段进行跟踪;模式为: item ( <item_id>, <character_id>, quantity ) . 如果一个角色装备了一个物品,或者从他的库存中删除了一个物品,我需要确保数量字段是正确的。

    2. 每个项目都有一个单独的行。我将使用group by计算每种类型的项目的数量(按项目ID)。装备和移除物品变得更加简单,但是如果角色有十种治疗药剂,它们将占据十行。

    当前没有空间约束或限制编程(使用mysql)。从长远来看,哪个系统更好?

    2 回复  |  直到 14 年前
        1
  •  1
  •   duffymo    14 年前

    听起来在某个地方,人物和物品之间有一对多的关系。

    我建议从使用group by作为派生项的数量开始。只有当性能成为问题时,我才会改变它。

    我不喜欢一个项目必须跟踪其数量的设计,但是如果必须这样做,您可以通过MySQL中的触发器来完成它,以便在插入、更新或删除时自动更新数量。

        2
  •  0
  •   Nich    14 年前

    数据库的设计由需要执行的查询类型决定。

    在这种情况下,如果您所需要的只是获得项目x的字符x数量,那么选项1将起作用,但如果您需要:

    项目x的数量

    谁的物品属性1=x

    和项目属性2=x

    和字符“attribute1=x”

    和字符“attribute2=x”

    你需要选择2。

    在选项1中,所有项目和所有字符共享相同的数量,尽管它们具有不同的属性。