Я думаю, что вы на правильном пути, то два отношения должны быть представлены двумя таблицами.
Если у вас есть 2 таблицы, это означает, что вы можете представить книгу заказанного несколькими людьми (идея ОСВОБОЖДАЮЩЕГОСЯ или лист ожидания может быть сгенерирован), смотрите пример ниже:
UserOffersBook таблица: bookId
может быть уникальным, потому что не должно быть много людей, предлагающих ту же самую книгу
[[UserOffersBook]]
bookId | userId | ...
---------------------
100 | 1
101 | 1
200 | 2
201 | 2
Каждая книга предлагается одним пользователем. Пользователи могут предлагать много книг.
UserOrdersBooks стол: orderId
может быть уникальный идентификатор, чтобы представить приказы пользователей
[[UserOrdersBooks]]
orderId | bookId | userId | ...
-------------------------------
123 | 100 | 2
124 | 100 | 3
125 | 201 | 1
126 | 101 | 2
Каждый заказ содержит книгу и пользователя.Книга может принадлежать многим заказам и различным пользователям, потому что эти пользователи могут захотеть поставить на список ожидания для этой книги.
Но я думаю, что вы могли бы хотеть, чтобы представить коллекцию книг в книге порядка в, так:
[[UserOrdersBooks]] [[BasketsBooks]]
orderId | basketId | userId | ... basketId | bookId
--------------------------------- -----------------
123 | 500 | 2 500 | 100
124 | 501 | 1 500 | 101
125 | 502 | 3 501 | 201
502 | 100
Так что это означает:
- Person1 хочет заказать Book201 (1 книга в корзине), его заказ №124.
- Person2 хочет заказать Book100 и Book101 (2 книги в корзине), его заказ №123.
- Pers on3 хочет заказать Book100 (1 книга в корзине), его заказ № 125. Он в списке ожидания для этой книги, потому что его заказ приходит после Person2's.
Это просто, что я чувствую, что что-то не так! – abulzooz
Вы ошиблись в отношении ссылки на таблицу ссылок. В базах данных «отношение» в основном представляет собой [то же, что и «таблица»] (http://en.wikipedia.org/wiki/Table_%28database%29#Tables_versus_relations). – mvp