mysql - 为库存系统设计模式......我应该计算数量还是跟踪它?

标签 mysql language-agnostic database-design

我正在为一款游戏做盘点,更像是一款 FF 风格的游戏。我有两种设计,想知道哪个更好

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

  2. 每一项占据单独的一行。我将使用 GROUP BY 来计算每种商品的数量(按 item_id)。装备和移除元素变得更加简单,但如果角色有十种治疗药水,它们将占用十行。

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

最佳答案

听起来好像某处的角色和元素之间存在一对多关系。

我建议使用 GROUP BY 从数量作为派生项开始。如果性能成为问题,我只会更改它。

我不喜欢项目必须跟踪其数量的设计,但如果您必须这样做,您可以使用 MySQL 中的触发器来完成它,以便在 INSERT、UPDATE 或 DELETE 时自动更新数量。

关于mysql - 为库存系统设计模式......我应该计算数量还是跟踪它?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3695087/

相关文章:

reflection - 内省(introspection)和反射(reflection)有什么区别?

c++ - 任何编程语言中的变量名是否占用内存空间

database-design - 如何不在休眠中创建列包括实体类中的一些属性

MySQL动态设置数据库名称并选择db.schematable

MySQL顶点和边的交集

language-agnostic - 你如何创建你的工厂?

php - 数据库中的 200 个表太多了吗?

mysql - 两次更新或删除和插入哪个更成本?

php - WordPress 表关联

mysql - 使用 LIKE 运算符而不限制结果