2012-07-13 71 views
0

我有一个程序正在读取信用卡声明,我需要它将其插入到表中。我遇到的问题是当我只使用插入它会让用户一遍又一遍地插入相同的信息。然而,我真的不能将任何列设置为唯一的,因为在所有字段中都可能有重复。 我有的字段是DATE |说明|金额
因此,用户可以在相同的日期在同一地点和相同的金额使用该卡。这些都是月度报表,所以除了使用独特的密钥插入忽略之外,还有其他的方法吗? Brent插入没有重复的mysql没有唯一的密钥

+0

是否有可能添加2个记录瓦特/所有平等的领域? – 2012-07-13 15:11:09

+1

如果没有逻辑上唯一的信息,则无法确定记录是否重复。真正的CC处理系统将交易ID添加到列表中,该列表唯一地标识交易。 – dasblinkenlight 2012-07-13 15:11:49

回答

0

您必须阐明业务规则:要求某些东西必须是唯一的(单列或多列的组合)或允许相同的行。

如果相同的行是有效的,即用户在相同的日期使用了两次卡,在相同的地方使用相同的数量,您不能要求数据是唯一的。

如果已经存在相同的行,您可以做的是向用户添加警告(如果数据条目是交互式的)。如果您正在进行批量导入,则如果所有(或至少一个连续块)的交易与已有交易相同,则可以发出警告。