2012-06-16 59 views
0

喜歡這個網站 - 它在我的學習中一直都非常翔實。剛剛完成了C#介紹的四分之一,其中一個項目是設計一個財務「賬戶管理器」應用程序,以保持餘額並在退出和存款時進行更新。該項目相當簡單,我沒有任何問題。不幸的是,我的下一個季度不包括任何編程類:(,所以我用的時間,擴大通過催谷我的客戶經理的應用我的知識。多用戶金融客戶經理應用程序設計推薦

我想做

第一件事,就是使多個用戶到目前爲止,我已經添加了一個CreateNewUser類,它禁止重複的用戶名,根據特定的格式要求檢查新的密碼,salt和哈希值,並將其保存到帶有用戶名(電子郵件地址)的「Accounts」表中,增加用戶ID夠簡單

所以現在我卡住了:。不知道什麼是最好的做法,我不認爲用戶應該使用相同的表作爲其他用戶,所以我在想,每個用戶都應該有自己的桌子,我是「太偏執」了,還是我的思路沿着c線ommon編程安全實踐?事實是,沒有人可能會使用這個應用程序,但我試圖瞭解我長大後可以在現實世界中應用什麼。

使用相同的表只需要加載的數據集相匹配的用戶標識的的查詢,所以這不會是一個大問題。如果我應該使用單獨的表格,那麼當創建新用戶時,我需要動態創建一個新表格,並且我將僅使用用戶標識來命名錶格,這將模擬真實世界中的帳號,我假設。

無論如何,我找不到另一個問題,所以我想我會問你想你的想法。

感謝,

Deadeddie

+0

想想這樣。如果您打算保留這些表的物理示例,例如使用筆記本。你願意有很多小筆記本還是大筆記本? – Sorean

+0

這似乎是大筆記本電腦的選擇將是我的首選,而且更容易實現,我只是想知道我是否在安全方面失去了一些東西。 – deadEddie

+0

只要您的代碼被寫入只提取正確的數據(在這種情況下,匹配userIDs),沒有什麼大不了的安全明智的,因爲所有的代碼將處理對數據的訪問權限。 – Sorean

回答

0

認爲它這樣。如果您打算保留這些表的物理示例,例如使用筆記本。你願意有很多小筆記本還是大筆記本?

只要你的代碼被寫入來只提取正確的數據(在這種情況下,匹配userIDs),沒有什麼大不了的安全明智的,因爲所有的代碼將處理對數據的訪問權限。並且您的數據庫和代碼也具有正確的權限設置。

0

到目前爲止,我已經包括禁止複製 用戶名的CreateNewUser類,檢查特定的格式要求的新密碼, 鹽和散列它,並將它與 用戶名保存到一個「賬戶」表(電子郵件地址)和一個自動遞增的用戶標識。簡單的 就夠了。

本來就不好。它應該是用戶表 - 在處理財務信息的應用程序中的帳戶具有非常具體的財務含義,並且您可能希望爲每個用戶和/或用戶共享的帳戶擁有多個帳戶。

而且,除非你寫的PowerShell命令(其中每一個命令類的模式),一個CreateNewUser類是走出去的d焚燒汽車的那樣糟糕。用戶是一個類,某種類型的存儲庫是可以的,但是CREATE NEW如果是類的任何功能。這絕對不是一個完整的課程 - 如果你把課堂中的每一種方法都轉化了,你就完全歪曲了面向對象的概念。

我不認爲用戶應該使用相同的表作爲其他用戶,

再次共beginenr錯誤。爲什麼不?根據情況放入適當的字段,引用帳戶和/或用戶,並罰款。

那麼我需要動態創建新表中創建新用戶時,

你有沒有想過你在這裏做什麼?維護明智的每一個變化意味着編寫一個程序,找出哪些用戶表存在,然後修改它們。工具支持窗外。我曾經看到一個像這樣寫的申請 - 發票管理。它有一張發票細節表PER INVOICE(每張發票的發票表,由發票號碼編碼),因爲程序員從來不明白數據庫是什麼。

我是「太偏執」了嗎,還是我的思維沿着通用編程安全實踐的路線?

他們沿着「你被解僱了,學習數據庫是如何工作的」。

使用相同的表只需要加載的數據集相匹配的用戶標識的

的查詢;)這樣的數據集都還在嗎?你有沒有理由在過去的30年中對微軟的最糟糕的做法進行編程考慮 - 而不是像微軟已經提供一段時間以來一直使用的ORM(Linq2SQL,Entity Framework),這會使你的應用程序變得很多 - 啊 - 更多 - 啊 - 面向對象?

我可以建議讀一本像樣的書嗎?查找Scott Ambler的「構建可以工作的對象應用程序」?不,它不是爲C#編寫的 - 有趣的是,好的架構的概念是99%的語言不可知的。

+0

謝謝大家。有點語義。 「帳戶」表是一個帳戶表(用戶ID,電子郵件地址和鹽漬/散列密碼),但「用戶」會更具描述性 - 謝謝。並感謝所有人分享您的一些經驗。這就是我一直在尋找的。我很好。 – deadEddie

相關問題