在作业队列表中拥有作业详细信息或将详细信息放在单独的表中是否有用?

时间:2012-07-27 12:48:39

标签: c# sql-server sql-job job-queue

我目前正在设计一个模块,其中服务或控制台应用程序将从JobQueue表中读取Job。我设计了JobQueue表,其中包含以下信息:

JobId:int Primarykey

JobType:int notnull

状态:varchar notnull

CreatedOn:datetime notnull

LastModifiedOn:datetime nullable

CompletedOn:datetime nullable

JobType属性主要用于保持此表更通用,而不是特定类型的作业。我的问题是,是否要在此表本身或其他具有引用它的作业ID的表中保留要执行的作业的详细信息?这是因为我有一些其他表中的数据。因此,在执行作业时,我们可以间接获取数据。为了避免重复信息,我想到了这样的事情。这是一个好方法吗?需要你的建议

2 个答案:

答案 0 :(得分:0)

我在这里看不到很多属性(也许你没有显示那些?)

我看到一个明确需要的id(jobID),类型和状态信息(如果没有这些数据,你看不出怎么办。)

然后您拥有审核信息,创建,修改和完成。我自己喜欢在那里放一个字符串来创建和修改谁,但我在每个创建的表中都有审计信息。当您不确定发生了什么并且您正在尝试维护数据库时,它总是很有用。

答案 1 :(得分:0)

保留您所拥有的任何数据"其他表格"在那张桌子里。您需要考虑的是如何使用数据 如果您要显示某个索引作业,可以从中选择一个来查看详细信息,您可以在两个单独的提取中获取数据。或者,如果您需要与作业相关的所有数据(JobQueue表中的数据加上"其他表"中的数据),您始终可以使用JOIN执行单次提取。我不认为将JobDetails数据保存在单独的表中会导致任何问题。

相关问题