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查询更复杂,由于大量的连接和施放