我为什么要“正常(朦胧)?”

时间:2012-09-03 14:36:41

标签: sql etl

我正在创建一个日志表,即使我是数据库程序员,我可能不应该这样做,我正在创建表,以便初始消息插入一个guid和start_time - 所有后续事务都是对其他列的更新,这些列是数据加载的属性:ftp连接,文件解压缩...

为什么这是一个坏主意?我应该羞愧地低下头吗?我想要一个整洁,干净的表 - 一个工作,一行(我将构建我自己的逗号分隔的文件列表,我已经处理过(或者如何列出一个ID列表?我将构建一个文件ID列表,加入我下载的文件表...))

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

2 个答案:

答案 0 :(得分:2)

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

如果您在处理日志记录时将其附加到日志记录中,或者您需要查询/加入单个文件名,那么这些是您的数据元素,您应该有一个表格。

简而言之:可以使用逗号分隔列表,除非您必须附加到该列表,或者在某个时刻将其拆分。

我刚刚介绍了文件名,但在这种情况下,同样的想法适用于其他类型的数据。

答案 1 :(得分:0)

我们大多数时间使用日志文件而非日志表格的一个原因是:我们想知道发生了什么以及如何详细和按顺序。您的单个记录 NOT 提供这些详细信息......