【问题标题】:Simple relation with amount of items与项目数量的简单关系
【发布时间】:2011-06-16 21:15:54
【问题描述】:
我有一个项目,我在其中模拟某些游戏中的用户数据库。每个用户都有存储物品的设备。现在我想在每个用户设备中添加每个项目的表存储量,但我不太确定如何查看 Equipment|Equipment_items|Items_amount 表之间的关系。这是来自 Visio 的方案:
【问题讨论】:
标签:
sql
oracle
entity-relationship
database-schema
【解决方案1】:
也许我遗漏了一些东西,但你为什么会有三张桌子?我认为你会有一个 Item 表、一个 User 表和一个 User_Item 交叉表,其中包含项目数。类似的东西
CREATE TABLE item (
item_id NUMBER PRIMARY KEY,
item_name VARCHAR2(100),
<<some other attributes>>
);
CREATE TABLE user (
user_id NUMBER PRIMARY KEY,
user_name VARCHAR2(30),
<<some other attributes
);
CREATE TABLE user_item (
user_item_id NUMBER PRIMARY KEY,
user_id NUMBER REFERENCES user( user_id ),
item_id NUMBER REFERENCES item( item_id ),
quantity_held NUMBER
);
听起来用户的装备只是查询的结果(即 3 把大刀、1 个圣杯、2 个治疗药水)。
SELECT item_id, quantity_held
FROM user_item
WHERE user_id = <<some user ID>>
但也许您认为玩家拥有多件装备,每件装备都包含物品(即,用户在每件装备中都有一个背包、一个马鞍包和一个小袋以及不同的物品)?