-1

只为两个表创建两个关系是否正确?我所处的情况:我有一张供用户使用的桌子

另一个是书本

我有两个关系:

1- offer book(一对多):提供您拥有并想出售的书

2- order book(一对多):订购以前提供的书籍之一

4

3 回答 3

0

在您的情况下,我认为您还应该创建两个表:offers、orders,其列列表如下:

offer: id | id_user | 身份证 | 日期时间 | 价值 ..
订单:id | id_user | 身份证 | 日期时间 | value ..

然后在 4 个表之间创建关系

于 2013-03-20T05:02:44.120 回答
0

我会用 4 张桌子

用户,user_offer_book,user_buy_book,书

用户买书是多对多的,所以来了 user_buy_book(relashionship 表)

用户报价书也是多对多的,所以来了user_offer_book(relashionship表)

您还需要 user 和 book 表

干杯

于 2013-03-20T05:07:45.387 回答
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

每个订单包含一本书和一个用户。一本书可以属于许多订单和不同的用户,因为这些用户可能希望将自己列入该书的候补名单

但我认为您可能希望以book order表示一组书籍,因此:

[[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 回答