我有用於從平面文件導入數據的應用程序。有一個ImportJob表包含導入作業詳細信息(作業名稱,作業計劃等)和源文件配置詳細信息(文件名,文件格式等)。
現在,我需要添加更多的數據源,這樣應用程序可以從數據庫中導入數據,Web Services等
總會有隻有一個每項匯入工作的數據源。
電流(簡體)表結構 -
ImportJob - Id, JobName, JobStartTime, SourceFileName, SouceFileDelimiter
問題 我應該如何重組,這樣我可以添加更多的源類型,但仍保證會有每項匯入工作的只有一個來源類型? (這是在SQL Server)的
我考慮了以下解決方案 -
新源類型的列添加到同一個表,並使用「SourceType中」現場找出得到哪些列數據來自 -
ImportJob table - Id, JobName, JobStartTime, SourceType, SourceFileName, SourceFileDelimiter, SourceWebServiceLink, SourceWebServiceUserName, SourceDBServer, SourceDBName etc
問題 - 對於任何源類型,大多數列將爲空。隨着越來越多的資源被添加,此表格可能會變得非常寬(並且非常空)。
對於每個源創建單獨的「源」的表和與所述ImportJob表一個「共享」外鍵引用它們 -
ImportJob table - Id, JobName, JobStartTime, SourceType, SourceId (foregin key) SourceFile table - SourceId (primary), SourceFileName, SourceFileDelimiter SourceWebService table - SourceId (primary), SourceWebServiceLink, SourceWebServiceUserName SourceDB table - SourceId (primary), SourceDBServer, SourceDBName
問題 - 該應用將使用在ImportJob的SourceType中字段找出哪些密鑰所屬的SourceXXX表。此外,ImportJob中的SourceType和SourceId之間的關係不可強制執行。
是否有任何標準/理想的方式來建模?