2013-03-20 5 views
-1

Правильно ли создать два отношения только для двух таблиц? ситуации я в: У меня есть таблица для пользователейдва стола, два отношения?

и еще один для книг

и у меня есть два отношения:

1- offer book (один для многих): предложите книгу, которую вы имеете и хотите продать

2- order book (один к человеку у): порядок одна из книг, которые были предложены, прежде чем

+0

Это просто, что я чувствую, что что-то не так! – abulzooz

+0

Вы ошиблись в отношении ссылки на таблицу ссылок. В базах данных «отношение» в основном представляет собой [то же, что и «таблица»] (http://en.wikipedia.org/wiki/Table_%28database%29#Tables_versus_relations). – mvp

ответ

0

Я думаю, что вы на правильном пути, то два отношения должны быть представлены двумя таблицами.

Если у вас есть 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.
+0

спасибо за внимание, это было очень полезно :) – abulzooz

0

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

предложение: ID | id_user | id_book | datetime | стоимость ..
заказ: id | id_user | id_book | datetime | значение ..

и после этого создавать отношения между таблицами 4

+0

спасибо за вашу помощь :) – abulzooz

0

Я хотел бы использовать 4 таблицы

пользователей, user_offer_book, user_buy_book, книга

пользователь покупать книги множество для многих, так что приходит user_buy_book (справочная таблица)

предлагают пользователю книги также многие ко многим, так что приходит user_offer_book (relashionship стол)

вам также потребуется пользователем и книга таблица

веселит

+0

спасибо за вашу помощь, мне просто трудно отличить книги (как названия) от книг (как на складе), и именно поэтому я пришел с одним-ко-многим отношение :) – abulzooz

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