-1

2 つのテーブルに対して 2 つのリレーションを作成するのは正しいですか? 私がいる状況:ユーザー用のテーブルがあります

もう1つは本用

と I には 2 つの関係があります。

1- offer book(一対多) : あなたが持っていて売りたい本を提供する

2- order book(1 対多) : 以前に提供された書籍の 1 つを注文する

4

3 に答える 3

0

あなたの場合、次のような列リストを持つオファー、オーダーの2つのテーブルも作成する必要があると思います

。id_user | id_book | 日時| 値..
順序:id | id_user | id_book | 日時| 値..

その後、4つのテーブル間の関係を作成します

于 2013-03-20T05:02:44.120 に答える
0

あなたは正しい方向に進んでいると思います。2つの関係は2つのテーブルで表される必要があります。

テーブルが2つある場合は、複数の人が注文している本を表すことができることを意味します(バックオーダーまたは順番待ちリストのアイデアを生成できます)。以下の例を参照してください。

UserOffersBookテーブル:bookId同じ本を提供する人が複数存在してはならないため、一意にすることができます

[[UserOffersBook]]
bookId | userId | ...
---------------------
 100   |   1
 101   |   1
 200   |   2
 201   |   2

各本は1人のユーザーによって提供されます。ユーザーは多くの本を提供できます。


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です。
  • Person3は、Book100(バスケットに1冊)、注文番号125を注文したいと考えています。注文はPerson2の後に行われるため、彼はその本の順番待ちリストに載っています。
于 2013-03-20T05:11:53.687 に答える
0

私は4つのテーブルを使用します

ユーザー、user_offer_book、user_buy_book、本

ユーザーの書籍の購入は多対多であるため、user_buy_book (関係テーブル) が続きます。

ユーザー オファー本も多対多であるため、user_offer_book (関係テーブル)

user と book テーブルも必要です

乾杯

于 2013-03-20T05:07:45.387 に答える