是在父表中具有status或Summary列的正确方法,还是应选择其他顺序?

问题描述 投票:0回答:1

我的父表是“作业”表,并且有一个子表记录了名为“ JobActions”的作业的动作,如下所示:

作业(JobId,JobType,CurrentStage,AssignedTo)] >>

JobActions(JobActionId

JobId,CreateDate,ActionType,FromUserId,ToUserId,消息,详细信息)

在网页的网格中,我列出了网格列,如下所示:

JobId,CreateDate,CurrentStage,AssignedTo,LastActionType,LastActionDate,...

在用于计算以下各列的网格中,我使用对子表的联接(在有许多用户和许多数据的情况下非常慢)

[CreateDate ==>第一个(或最小)JobActions的CreateDate,

LastActionType ==>上次JobActions的ActionType,

LastActionDate ==>最后(或最大)JobActions的CreateDate

我大约有五列,需要很多联接到JobActions或Another表,所以我决定更改Job表,如下所示:

作业(JobId,JobType,CurrentStage,AssignedTo,CreateDate,LastActionType,LastActionDate)

最后三列总是在将任何作业添加到JobActions时始终更新。

  • 问题1:这是正确的版本,(我对表格进行了非规范化吗?]
  • 问题2:我应该为此类作业使用触发器还是应该在代码内部进行更新?
  • 问题3:这是最佳做法吗?有没有更好的解决这类问题的方法。

我的父表是“作业”表,并且有一个子表记录着名为“ JobActions”的作业动作,如下所示:作业(JobId,JobType,CurrentStage,AssignedTo)JobActions(JobActionId,JobId,...

sql database-design query-optimization database-trigger denormalization
1个回答
0
投票

问题3:这是最佳做法吗?有没有更好的解决这类问题的方法。

© www.soinside.com 2019 - 2024. All rights reserved.