假设我有一张叫HoursCharged的桌子
ChrgNum(varchar(10))
CategoryID(uniqueidentifier)
Month(datetime)
Hours(int)
CategoryID是对数据库中另一个表的外键引用,它只是一个名称/ID对。chrgnum保证在这个数据库之外是唯一的,所以我只检查它是否已经存在于我的数据库中。
您还应该知道,这个工具支持来自一个数据库的几个不同的组(因此是全局唯一的categoryID,因为不同的组可能将类别命名为相同的东西,所以我需要区分它们)。
此表由csv文件填充。其理念是,chrgnum、categoryID和month的每一个组合都是独一无二的。正在运行以创建导入文件的报告只能看到特定范围(即一年)。因此,该算法如下所示:
IF (ChrgNum exists in database, CategoryID exists in database,
combo of ChrgNum/CategoryID/Month DOES NOT exist in table HoursBurned)
THEN add a new row for this entry
ELSE IF (ChrgNum exists in database, CategoryID exists in database,
combo of ChrgNum/CategoryID/Month DOES exist in table HoursBurned)
THEN update the existing row with the new Hours value.
这一切都很好,但现在我的老板要我说明在一个月内,一个已知的时间和一个
未知的
类别。
我的问题是,我如何解释这个问题?如果我只是插入一个空的categoryID,那么如果一个完全独立的组对相同的数字和类别收取小时费用,会发生什么?我的另一个想法是为未知类别创建一个新表,但是如果我这样做,并且第一个导入有两个未知类别,而下一个导入又有两个未知类别中的一个(可能发生),我该怎么做?
我的头已经绕着这个转了好几个小时了。感谢您的帮助!