0
我的任務是開發評估日誌文件的工具,我正在尋找合適的數據庫設計。有幾十個應用程序以CSV格式生成日誌文件,但每個應用程序都有不同的列和數據類型。在啓動時,每個應用程序都會將其當前日誌文件發送到服務器,該服務器將新行插入到SQL Server數據庫中。用於日誌數據評估的數據庫設計
到目前爲止,我想出了以下設計。從我在其他文章中閱讀的內容中,強烈建議不要使用EAV設計,也不能說服我將所有數據存儲爲字符串。所以我想出的唯一選擇是每個應用程序都有一個表。
我還沒有考慮過其他選項嗎?如果您遇到類似的情況,您選擇了哪種設計?
- 簡單的設計
缺點::
- 大量的表格 的每個應用程序
ApplicationA(A, B, C, D, E)
ApplicationB(B, E, H, J)
ApplicationC(C, P, N, X, Y)
優點
1)一個表
2)EAV模型
Applications(AppId, Name)
DataTypes(DTypeId, Name)
Properties(PropId, Name, DTypeId)
ApplicationProperties(AppId, PropId)
Values(ValueId, AppId, PropId, Value)
優點:
- 無需添加新表或列
缺點:
- 所有的值存儲爲字符串
- SQL查詢更復雜,由於大量的連接和施放