2011-03-01 33 views
2

我正在考慮製作一個iou(我欠你)web應用程序,在那裏我可以跟蹤誰欠我和什麼。我正在做這個副項目。無論如何,我沒有數據庫模式設計的經驗。該應用程序設計在下面的IMG所示: enter image description here幫我設計一個iou web應用程序的數據庫模式

現在,我知道,我需要至少以下用戶表:

UserTable: 
username, usernameId (pk), password, passwordHint, email 

然後,我感到困惑如何從那裏出發。我應該爲每個人#1,人#2等製作一張新桌嗎?或者,我是否應該在所有「交易」中使用另一個表IouTable並將用戶名用作fk?

IouTable: 
usernameId, personName, amount, description, date 

所以,當用戶YKO登錄時,它會運行此查詢: SELECT * FROM IouTable WHERE usernameId = username(可能得到它錯在這裏)

然後,我想借此行和每個人單獨分離出來,每個人都在自己的網頁上進行每筆交易。

在此先感謝您的任何幫助/意見/建議!

回答

3

絕對是所有借條的一張表。

場景1:由於YKO我希望所有我欠的人,又有多少的總

SELECT personName, sum(amount) totalOwed FROM IouTable WHERE usernameId = <Yko> 

方案2名單:作爲YKO我想知道我欠多少鮑勃和原因。

SELECT amount, description, date FROM IouTable WHERE usernameId = <Yko> and personName = 'Bob' 

讓我們看看你的情況。

  1. 用戶表看起來相當不錯。關鍵的候選人包括用戶名,用戶名和電子郵件。代理用戶名Id與密鑰一樣好。

  2. 該IouTable列出了所有的IOU。這張表有幾個問題。

    • Perhaphs a Yko在同一天兩次從Bob購買了2歐元,並且不費心去填寫描述。在這種情況下,您沒有適當的方法來區分這兩個交易。您可能應該添加一個transactionId來唯一標識交易

    • 此外,Yko可能有兩個朋友叫做Bob。 Yko如何將這兩者彼此分開。應該有Yko可以貸款的朋友名單嗎?

    • 最後Yko應該支付。 Yko大概可以清除桌子上的債務,但那麼我們怎麼才能找出誰已經借給誰多少錢?是否應該有專欄說明該部門是否已經支付?

    • Yko的一些朋友甚至可能會考慮以增量方式付款。 Yko可能會編輯原來的欠款數額,但我們再次不知道需要多少錢。是否應該有一個專欄來說明迄今爲止已經支付了多少部門?如果Yko希望更密切地監督債務,所有還款清單可能是個好主意。然後你可以通過總結已經償還多少來計算剩餘的債務總額。

+0

很快。謝謝!!! – okysabeni

+0

這是一個很好的觀察Aleksi。我將與日期一起去唯一標識同一天的兩筆交易,但交易編號更有意義。我會假設,當用戶輸入名字時,他/她將使其獨特。我經常與邁克籃球交往。我在蘋果商店中有一個應用程序,我強迫用戶使用他們地址簿中的聯繫人,並且在那裏也有重複。 – okysabeni

+0

iouapp。 url:http://itunes.apple.com/us/app/iouapp/id413936149?mt=8是我爲iPhone製作的應用程序,我想要構建類似的東西,除了作爲Web應用程序,以便可以從任何瀏覽器訪問它。要回答你的問題,如果Yko欠午餐鮑勃$ 10,然後Yko以15美元購買鮑勃晚餐,然後午餐時欠鮑勃7美元,那麼會有相應的運行。想象一下諸如+7,-10,+3等一系列交易......並且它會繼續下去。如果你願意,如果有幫助,我可以截圖。謝謝。 – okysabeni

1
TABLE User: 
username, password, passwordHint, email 
PK = username 

TABLE Iou: 
username, pesronName, date+time, amount, description, repaid(true if personName has repaid it yet) 
PK = username,personName,date+time (or, make an auto-incrementing id num) 
0

如果你的意思是它的2個用戶之間跟蹤欠條,然後欠條表將有一個外鍵返回到用戶表,一個是「奧爾」,另一個爲「欠」。

0

幾年前,我的公司開始了我們自己的一個小小的項目,我們終於發佈了它。它的發展遠遠超出了原先的預期,現在可以跟蹤任何類型的IOU,並與Facebook和Twitter整合。如果你想檢查出來,去IOUmate.com

我當然不是試圖阻止你建立自己的應用程序。但是,如果您正在尋找這個功能(就像我們一樣),但找不到解決方案,請查看我們的應用程序,也許可以節省一些時間。

感謝, 丹


附:我建議你添加一張朋友表來規範你的IouTable。然後,每個借條可以與用戶和朋友相關聯。如果你想朝着我們所做的方向前進,那麼朋友可以成爲成員或不成爲成員。祝你好運!

+0

我一定會檢查出來的。謝謝!!! – okysabeni

相關問題