考慮在數據庫中有一個名為users的表和一個名為 的表wallets。除其他外,用戶有 0 個、1 個或多個錢包。這種關系是一對多的,這意味著錢包有一個指向用戶的外鍵?,F在的問題如下:在為一個人構建結構或類時,我看到兩種可能性:1) 用戶沒有錢包的跡象。有一個函數將用戶作為參數并獲取錢包數組。2) 用戶擁有一個包含錢包的數組作為成員,并且在創建對象/結構時獲取錢包。我認為第一種方法可能更好,因為它更加模塊化——在第二種方法中,用戶依賴于錢包,即使用戶沒有錢包。不過,我不確定哪種方法更好,所以我正在尋找兩種方法的比較。
1 回答

白衣染霜花
TA貢獻1796條經驗 獲得超10個贊
在應用程序級別,您可能有這樣的用戶類型(Go 符號):
type User interface {
Wallets() []Wallet
}
在下面,有一個數據庫,在您的情況下是 SQL。這應該不會是通過看你的應用程序很明顯,想。
對超出它們以接口契約形式保證的依賴項做出假設會使組件不可逆轉地耦合。
這意味著,如果您根據數據庫的模式對應用程序進行建模,那么您就做錯了,因為您的整個應用程序現在與所述數據庫緊密耦合,并且對其任何部分的任何更改都會產生巨大的、不可預測的影響。
一個常見的解決方案是使用所謂的ORM 層,它位于您的數據庫驅動程序和實體模型之間。它將處理以下內容:
應該如何以及何時取出錢包?
錢包的信息存儲在數據庫中的哪個位置?
當你刪除一個用戶時,錢包也應該被刪除嗎?
除其他事項外。
PS:此答案適用于靜態和動態類型語言。
- 1 回答
- 0 關注
- 194 瀏覽
添加回答
舉報
0/150
提交
取消