数据库设计:如何允许同行订单又名模拟棒球交易卡交易

时间:2012-05-02 00:06:12

标签: mysql database relational-database

在谈到如何处理数据库设计时,我感到磕磕绊绊。我环顾四周,找到像http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php这样的例子,这对于一个销售商品的商店非常有用,但我想建立一个跟踪两个用户之间销售(或交易)的数据库。

Ex John为Jane(4 * y1),y2和$ 5.00交易卡x1,x2,x3,x4。 (在这个例子中,约翰交易四张牌,名为x1,x2,x3,x4为Jane的牌,4张牌为y1,1张牌为y2,$ 5.00。

我还希望Jane可以向John提出额外的卡片,或者她想要在她的脑海中平衡它的任何东西。

提前谢谢

1 个答案:

答案 0 :(得分:2)

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

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

  • 用户表,每个用户1行
  • 一张牌桌,每张卡各占一排(无论该卡存在多少个实例 - 一个例子都是Topps的1984年Michael Jordan新秀卡)
  • 交易表,每笔交易1行。您可能希望交易行包含交易中涉及的user1和user2的列,使用来自users表的ID。如果你想要还价的能力,我会建议还价只是这个表中的另一行,其中一列“original_offer”引用了还价所依据的报价。
  • 交易项目表。在这里,交易涉及的每个项目都有1行,数量。每行都有一个映射到交易表的tradeID,一个映射到卡表的cardID,一个数量列,以及“from”和“to”列,每个列都映射到所涉及的用户ID。