2014-11-13 2 views
1

Я пытаюсь построить базу данных, которая будет выполнять следующие функции:Чтобы присоединиться или не присоединиться, структурирование базы данных

«Разрешить пользователю дать или взять несколько элементов из другого пользователя и оставить дополнительный комментарий об этом."

Я думаю, что это только потребуется две таблицы:

Пользователи Таблица:

Идентификатор_пользователя (PK)
FirstName
LastName
Email
Пароль
ItemBalance
DateCreated
DateModified

Сделки Таблица:

TxnID (ПК)
NumOfItems
GiveTake
ToUser (ФК)
FromUser (FK)
комментарий
DateCreated
DateModified

Будет ли это сделать трюк, или я должен таблица соединений? Я могу видеть, где у транзакций может быть много пользователей, поэтому кажется, что это может быть отношение «многие ко многим». Любая помощь будет оценена по достоинству. Благодаря!

+0

Если у вас действительно много, то вам нужна промежуточная таблица. –

+0

У пользователей бесконечное количество предметов? – Strawberry

ответ

0

В текущем запросе вы указываете только транзакции между двумя пользователями - ToUser и FromUser в текущей таблице. Так что для этого usecase, ваш дизайн в порядке.

+0

Пользователь может дать или взять товар у нескольких пользователей, но он всегда будет индивидуальной транзакцией между двумя пользователями, поэтому я считаю, что это все еще стоит. Спасибо за подтверждение. – Craigfoo

0

Я оставил бы таблицу пользователей отдельно и создавал бы таблицу транзакций отдельно, как вы предлагаете в своем вопросе. Это поможет вам отслеживать все транзакции.

Если вы присоединитесь к таблицам, у вас будет либо слишком много тех же данных, либо у вас будет только последняя транзакция.

Смежные вопросы