我正在为浏览器游戏创建数据库。到目前为止,我做得很好(我猜),直到我决定让元素可堆叠。因此,我创建了“quantity_table”。这是我的简化数据库:
我的目标是在一次查询中获取商品和数量的数据。我试过这样的事情:
SELECT items.*, quantity_table.quantity1 FROM items JOIN quantity_table WHERE id_item = 3 AND id_quant = 1
结果:
它有点管用...但是如果我选择项目编号。 2 最后一列是数量 2。而且我不需要 quantityX 列,而是一些通用的东西,比如“数量”。所以查询不是问题,而是数据库本身。但我永远被这个困住了!实在不知道怎么解决这个问题。谁能帮帮我?
最佳答案
数据库不像大多数编程语言那样有列表的概念。任何时候你需要一个多关系,它必须是一个表。
在这里使用这个概念,你的设备表应该是这样的:
桌面设备
- id_acc: int(10)
- id_item: smallint(5)
- 数量:tinyint(3)
要获取用户 1 的所有项目,请执行以下操作:
select i.id_item as item_id, name as item_name, type as item_type, qty as item_qty
from accounts as a
inner join equipment as e
on a.id_acc = e.id_acc
inner join items as i
on e.id_item = i.id_item
where a.id_acc = 1
关于mysql - 糟糕的 MySQL 数据库设计?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41796525/