我會盡量保持這個例子儘可能簡單。 我試圖在舊的VB6應用程序中實現一個域驅動的設計(一個業務對象來表示每個表),它不遵循OOP模式。現有代碼的編寫方式與您從10年前的VB應用程序中所預期的相同(即使用ADODB.Recordset不帶字段的智能感知)。現有的代碼是非OOP的,並且我不敢遵循現有的模式。 這裏面臨的一個挑戰是如何在新需求出現時處理數據庫更改,而不會對任何可能稍後查看DB設計的開發人員造成太多混淆。從未標準化的寬表中清理出來
假設在此應用程序,我們有一個假設的「客戶」表,這顯然是不堪重負的這樣: 的clientId CLIENTNAME聯繫人姓名地址城市州郵編電話CREDITLIMIT CurBalance(和和和...)
的InterestRate條款難道是可以接受的,打破的InterestRate和條款到一個單獨的「Fiancials」表,這可能會出現,因爲現有的2個金融領域一個奇怪的分裂將存在:新的金融領域
新的要求需要原來的桌子?
理想情況下,舊金融字段(CreditLimit,CurBalance)將被重新定位到這張新表格,但面臨破壞應用程序多個部分的風險,移動字段並不可取。我只想停止目前製作更寬更寬的桌子的做法。
基本上,我想我想單獨留下舊的代碼/表格設計,使用新字段進行乾淨的休息,並創建域對象來處理任何現有的和新的表格,即客戶端對象可能會暴露表示新的財務屬性財務表。
嘗試做一個乾淨的休息或只是添加新的領域到現有的糞便是一個好主意? 是否有一個巧妙的命名方案來表示新表與舊錶? DBA如何在不破壞現有設計的情況下進行乾淨的休息?
感謝您的任何想法