我們有第三方軟件,我被要求爲它創建一個擴展。該擴展將處理當前軟件中存在的數據,幷包含一些附加數據。我應該使用並添加到現有的非規範化數據庫結構,還是創建自己的?
現有數據非常規範化。我將使用的大部分數據(大約4-5個不同實體)存在於一個表中。我需要爲這些實體中的大多數添加其他字段。
我看到兩種方式這樣做的:
創建新領域的新表,匹配現有的表1:1,並使用它們使用
優點相同的非規範化的風格:它適合於現有的非規範化數據庫結構,並且易於創建。缺點:非常規化,而且我有點着迷於正常化我的數據庫。目前的表格已經有50多列,它應該被分成4-5個不同的表格。
我也不認爲我可以輕鬆地使用EF與當前數據庫結構(與數據庫的工作我的首選方式),並且必須手動創建的,而不是使用EF生成它們
代碼數據模型
創建一整套新表和使用觸發器表
之間的數據同步優點:可以創建表我想要的方式,並且可以使用EF來處理數據庫的操作,並生成數據模型對我來說
缺點:需要使用觸發器來同步數據現有表格
您認爲哪一個更好?
我應該重新說明第一個選項......我實際上不會編輯現有的表格,但創建一個新的表格鏈接到1:1以獲取其他數據,使用它們相同數據庫風格。這是我們過去爲其他桌子做的。 – Rachel
我會按照選項一。我認爲選項二是過度殺傷性的,可能是一個管理噩夢。考慮一下如果沒有你的幫助,它會轉移到另一個開發人員是多麼容易或困難。我想我的工作量少,數據管理少,易於維護和可靠性高。 –
我非常同意傑夫在上述評論中的位置。一個喜歡的模式或風格的「癡迷」是不足以做出商業決定的。我可以理解它,並試圖改變現有的東西或以我自己的方式擴展(針對那裏的東西)。就消費的時間和金錢而言,這幾乎總是一個錯誤。除非你的擴展是巨大的,並且你有足夠的時間(這將允許你在數據庫中建立你自己的基礎),否則我會反對迷戀,喜歡簡單模式。在您可以從頭開始的項目中遵循您的偏好。 – Slauma