上面是我的数据库的截图,
DateTime审查此给定任务.我目前的做法是:
Nif-else(或switch)语句块,更新(N + 1)thReview列.例如,对于一个给定的任务,其ReviewedTimes列读取3,我会更新FourthReview一个新的列DateTime值.
是否有更优雅的方式来实现同一目标?我在想:
正如我在上面的评论中所建议的那样,Tasks与Reviews有一对多的关系,要做我在SQL Server中建议的事情,你需要先从任务表中删除所有的Review Columns:
ALTER TABLE [dbo].[Tasks]
DROP COLUMN [FirstReview], DROP COLUMN [SecondReview], etc...
Run Code Online (Sandbox Code Playgroud)
然后创建一个名为Review的新表,该表具有Task表主键的外键,假设您在Tasks中有一个名为TaskId的Identity列:
CREATE TABLE [dbo].[Reviews] ([ReviewId] INT NOT NULL Identity(1, 1) PRIMARY KEY, [TaskId] INT NOT NULL References [dbo].[Tasks]([TaskId]), [TimeStamp] DateTime NOT NULL)
Run Code Online (Sandbox Code Playgroud)
现在当有人去审查任务项时,您首先要检查是否已达到审核限制,在查看表上使用COUNT()获取给定的任务ID,如果尚未到达,则插入新的记录Review Table中的任务查看,Task Id为TaskID列值,CURRENT_TIMESTAMP返回Review的日期时间.如果您正在跟踪审核任务的人员,那么您将使用用户ID的外键向Review添加另一列,但这只是另一个建议.
| 归档时间: |
|
| 查看次数: |
57 次 |
| 最近记录: |