2 つのテーブルに対して 2 つのリレーションを作成するのは正しいですか? 私がいる状況:ユーザー用のテーブルがあります
もう1つは本用
と I には 2 つの関係があります。
1- offer book
(一対多) : あなたが持っていて売りたい本を提供する
2- order book
(1 対多) : 以前に提供された書籍の 1 つを注文する
2 つのテーブルに対して 2 つのリレーションを作成するのは正しいですか? 私がいる状況:ユーザー用のテーブルがあります
もう1つは本用
と I には 2 つの関係があります。
1- offer book
(一対多) : あなたが持っていて売りたい本を提供する
2- order book
(1 対多) : 以前に提供された書籍の 1 つを注文する
あなたの場合、次のような列リストを持つオファー、オーダーの2つのテーブルも作成する必要があると思います
。id_user | id_book | 日時| 値..
順序:id | id_user | id_book | 日時| 値..
その後、4つのテーブル間の関係を作成します
あなたは正しい方向に進んでいると思います。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
つまり、これは次のことを意味します。
私は4つのテーブルを使用します
ユーザー、user_offer_book、user_buy_book、本
ユーザーの書籍の購入は多対多であるため、user_buy_book (関係テーブル) が続きます。
ユーザー オファー本も多対多であるため、user_offer_book (関係テーブル)
user と book テーブルも必要です
乾杯