2

当谈到如何处理数据库设计时,我很困惑。我环顾四周,发现了像http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php这样的例子,这对于销售商品的商店来说效果很好,但我想建立一个跟踪销售的数据库(或交易)两个用户之间。

前约翰用卡片 x1、x2、x3、x4 换取 Jane's (4 * y1)、y2 和 5.00 美元。(在这个例子中,约翰用四张牌交换了 5 张名为 x1、x2、x3、x4 的牌,换了 4 张名为 y1 的牌,1 张名为 y2 和 5.00 美元。)

我还希望简能够向约翰提供额外的卡片,或者她可能想要平衡的任何东西。

先感谢您

4

1 回答 1

2

这是关系数据库设计的一个有趣示例。本质上,我的建议是创建一个尽可能标准化的结构。这基本上意味着您想要创建表格以便您可以填写空白:“此表格中的一行代表一个唯一的_ _ ”。

对于您的特定应用,我建议:

  • 用户表,每个用户 1 行
  • 一张卡片表,每张卡片 1 行(无论世界上有多少该卡片的实例 - 例如 Topps 的 1984 年迈克尔乔丹新秀卡片的一行)
  • 一张交易表,每笔交易一行。您可能希望交易行包含参与交易的 user1 和 user2 的列,使用他们在 users 表中的 ID。如果您想要还价的能力,我建议还价只是此表中的另一行,其中“original_offer”列引用了还价所基于的报价。
  • 贸易项目表。在这里,交易中涉及的每个项目都有 1 行,其中包含数量。每一行都有一个映射到交易表的交易ID、一个映射到卡表的卡ID、一个数量列以及“从”和“到”列,每个列都映射到所涉及的用户ID。
于 2012-05-02T00:15:30.337 回答