2012-05-02 61 views
2

當談到如何處理數據庫設計時,我磕磕絆絆。我環顧四周,發現像http://www.tomjewett.com/dbdesign/dbdesign.php?page=manymany.php這樣的例子,對於銷售物品的商店會很好,但我想建立一個數據庫來跟蹤兩個用戶之間的銷售(或交易)。對於Jane's(4 * y1),y2和$ 5.00,約翰交易牌x1,x2,x3,x4。 (在這個例子中,約翰交易四張牌,分別命名爲x1,x2,x3,x4爲Jane的5張牌,4張牌爲y1,1張牌爲y2和$ 5.00)。數據庫設計:如何允許同行訂單aka模擬棒球交易卡交易

我也希望Jane能夠計數向約翰提供額外的卡片,或者任何她想要在腦海中平衡它的東西。

謝謝你提前

回答

2

這是一個關係數據庫設計的有趣的例子。基本上,我的建議是創建一個儘可能標準化的結構。這意味着您基本上想要創建表格以便填寫空白:「此表格中的一行表示唯一的_ _。」

對於特定的應用程序,我建議:

  • 用戶的表,每個用戶
  • 的卡表1列,每每張卡(1行不管卡的多少實例世界上存在 - 舉例來說,Topps的1984年邁克爾喬丹新秀牌)
  • 交易表,每筆交易1行。您希望交易行使用用戶表中的ID來包含交易中涉及的user1和user2的列。如果你想要反還票的能力,那麼我會建議在這張表中的還價只是另一行,並且列出了「original_offer」,該列引用了還價所依據的要約。
  • 交易項目表。在這裏,對於交易中涉及的每個項目,您將有1行與數量。每行都有一個映射到交易表的交易ID,映射到卡表的卡ID,數量列和「從」和「到」列,每個列都映射到涉及的用戶ID。
+0

關於如何容納一定數量的貨幣以平滑貿易差額或者某人爲多張卡片進行純銷售的想法? – Mark

+0

@MarkR - 是的,您可能希望將您的「卡」表更改爲「資產」表,並使現金/美元成爲另一項資產。這樣,現金只是另一個可以從一方轉移到另一方的特定數量的物品。 – davesnitty

+0

嗡嗡聲...會得到零碎的美元...亂七八糟的卡數量將永遠是整數值現金將小數。 – Mark