Sql “我为什么要这样?”;正常(已化)“;

Sql “我为什么要这样?”;正常(已化)“;,sql,etl,Sql,Etl,我正在创建一个日志表,尽管我是一名数据库程序员,我可能不想这样做,但我正在创建一个表,以便初始消息插入一个guid和开始时间——所有后续事务都是对其他列的更新,这些列是数据加载的属性:ftp连接、文件解压缩 为什么这是个坏主意?我应该羞愧地低下头吗?我想要一个整洁、干净的表——一个作业,一行(我将构建我自己的逗号分隔的已处理文件列表(或者一个ID列表如何?我将构建一个文件ID列表,连接到我下载的文件列表…) 是/否?到公共汽车的后面去?我们大多数时间使用日志文件而不是日志表格的原因之一是:我们想

我正在创建一个日志表,尽管我是一名数据库程序员,我可能不想这样做,但我正在创建一个表,以便初始消息插入一个guid和开始时间——所有后续事务都是对其他列的更新,这些列是数据加载的属性:ftp连接、文件解压缩

为什么这是个坏主意?我应该羞愧地低下头吗?我想要一个整洁、干净的表——一个作业,一行(我将构建我自己的逗号分隔的已处理文件列表(或者一个ID列表如何?我将构建一个文件ID列表,连接到我下载的文件列表…)


是/否?到公共汽车的后面去?

我们大多数时间使用日志文件而不是日志表格的原因之一是:我们想知道发生了什么,以及如何详细和有序地进行。您的单个记录不提供这些细节…

这取决于您的插入和检索模式。如果在一个事务中将所有文件插入到记录中,并且不需要查询单个文件名,则可以使用逗号分隔的文件。然后,文件名列表是单个数据项,而不是非规范化的

如果在处理文件时将其附加到日志记录中,或者如果需要查询/连接单个文件名,那么这些就是您的数据元素,您应该为它们创建一个表

简言之:可以使用逗号分隔的列表,除非您必须附加到它,或者在某个点拆分它


我只介绍了文件名,但在这个场景中,同样的想法也适用于其他类型的数据。

这与etl有什么关系?我认为鉴于问题中的细节,这个问题没有明确的答案。我似乎回忆起大学课程中关于这一点的整个模块。如果我提到guid连接到事件表(由SSIS创建)会有区别吗?如果您有另一个表存储个人详细信息,那么它将帮助您,但重点是什么?您将用2个表替换1个文件?很酷--即将为此投入一些时间。。。我不想明天撤销它