比方說,我有一個Web應用程序是某種商店。我有一張表,可以存放所有的貨幣交易。在數據庫中處理退款或/存儲信用的最佳方式?
客戶ID,訂單ID,支付金額...等
而這個表被用於銷售報告和你有什麼。
現在我們要給客戶一種類似的禮物,無論是禮券還是退款。
只用一個-amount將它輸入到同一個表中是一個壞主意?還是把它們放在另一張桌子裏更好?
是否有一個主要的缺陷,在設置網站的這個表結構開始?
我已經建立了一些這樣的系統,但沒有太多的其他人的反饋,你們通常如何設置你的表像數據庫的商店。
感謝, 肯
我只是擔心,有多個表時,你可以擺脫一個讓事情變得更慢,更復雜的代碼。把它放在一張桌子裏有什麼問題?我當然認爲orderid和交易ID是不同的,那麼是否有一個問題,將它全部放在一個表中,其數量和可能的重複訂單ID都爲負值。或在禮品券新的orderids負數的情況下。 – kennethj 2010-10-22 21:35:30
也跟蹤訂單項目,我明確需要跟蹤每個項目的價格,當它被命令。人們傾向於有一個物品表,然後另一個訂購物品的表格,其中包含物品在購買時的價格以及與orderid相關的外鍵,然後在這種情況下將所訂購的物品數量加起來交易表中的金額相等......這似乎是多餘的。這通常如何處理?也許我應該尋找一些更受歡迎的購物車,看看它是如何完成的。 – kennethj 2010-10-22 21:38:25
2個小表可以比1個大表快速搜索。特別是如果你知道你正在尋找一個銷售或回報(你可能會立即知道)!如果您確實需要從兩者中提取,則只需加入sale.purchaseID = return.originalPurchaseID上的表即可。就像我在我的回答中所說的那樣,不要害怕有多個表如果(只有)如果你正確地構造和關聯它們。很多時候,多張桌子變成噩夢的原因是因爲沒有提前想到。你似乎現在正在避免這個錯誤,所以你應該很好! – 2010-10-23 03:35:35