Простая связь с количеством предметов - PullRequest
0 голосов
/ 28 января 2011

У меня есть проект, в котором я симулирую дБ пользователей в какой-то игре.У каждого пользователя есть Оборудование, в котором хранятся предметы.Теперь я хотел бы добавить количество сохраняемых таблиц каждого элемента в оборудовании каждого пользователя, но я не совсем уверен, как должна выглядеть связь между таблицами Equipment | Equipment_items | Items_amount.Вот схема от Visio:

enter image description here

1 Ответ

0 голосов
/ 28 января 2011

Возможно, я что-то упускаю, но зачем вам три стола? Я бы подумал, что у вас есть таблица 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>>

Но, возможно, вы думаете, что у игрока есть несколько единиц снаряжения, каждое из которых содержит предметы (то есть у пользователя есть рюкзак, седельная сумка, сумка и разные предметы в каждой единице снаряжения)?

...