我正在创建一个日志表,即使我是一名数据库程序员,而且我可能不想这样做,我正在创建该表,以便初始消息插入一个 guid 和 start_time——所有后续事务是对其他列的更新,这些列是数据加载的属性:ftp 连接,文件解压缩...
为什么这是个坏主意?我应该羞愧地低下头吗?我想要一张整洁、干净的桌子——一份工作,一行(我将构建我自己的逗号分隔的已处理文件列表(或者 id 列表怎么样?我将构建一个文件 id 列表)加入我下载的文件表...))
是/否?去公共汽车的后面?
这取决于您的插入和检索模式。如果您在一个事务中将所有文件插入到记录中,并且不需要查询单个文件名,那么您应该可以使用逗号分隔的文件。文件名列表是单个数据项,它不是非规范化的。
如果您在处理文件时将文件附加到日志记录,或者如果您需要查询/连接单个文件名,那么这些就是您的数据元素,您应该为它们准备一个表。
简而言之:有一个逗号分隔的列表是可以的,除非你必须附加到它,或者在某个时候拆分它。
我刚刚介绍了文件名,但在这种情况下,同样的想法也适用于其他类型的数据。
大多数时候我们使用日志文件而不是日志表的一个原因是:我们想知道发生了什么以及如何详细和按顺序进行。您的单一记录不提供这些详细信息...