我試圖想出一個數據模型來表示一個簡單的貨幣交易系統。我應該重複類屬性還是創建額外的數據庫表?
我有一個類來表示一個事務,另一個類來表示一個TransactionRecurrence。
這兩個類都需要Id,金額,類型(提取/存款)和某種註釋的屬性。交易還將持有TransactionDate,而TransactionRecurrence將持有某種數據來表示重複(每月10日等)。
我的問題是:對於這兩個類將共享的屬性我應該只複製兩個類中的屬性(這將違背DRY原則),或者我應該創建一個新的類,比如TransactionInfo,它包含四個屬性,然後將該類型的屬性添加到其他兩個類(這將需要一個新的數據庫表和外鍵引用/ SQL連接,這會減慢查詢)?
編輯:例如,用戶將分別擁有一系列交易(這是一次性交易)以及他們通過Web API在客戶端上創建的單獨的TransactionRecurrence集合。這些數據存儲在單獨的表中。然後用戶可以通過api請求交易。事務可以直接添加到集合中,但是TransactionRecurrences將需要用來生成更多的事務對象,這些事務對象根據請求傳入的日期範圍被添加到集合中。然後序列化集合並將其發送給請求者。
我不知道具體是你的情況,但你可以利用繼承或抽象類。 – NicoRiff
你真的需要考慮他們不同的類嗎?您可以將單個交易視爲零交易(或沿着這些線)的交易回購。 – Jerrad
@Jerrad我也想過這樣做,但是TransactionRecurrence實際上並不是真實存在的東西,因爲它可能代表無數的事務。所以我需要一個實際上可以表示可序列化對象的類。 – toltman