Ein "einfacher" kleiner Hasch über die gewünschten Felder. (4 oder 8 Byte reicht und ist schnell zu prüfen).
Vor dem einfügen eines neuen Datensatzes den Hash berechnen und nachsehn, ob es andere Datensätze mit diesem Hash gibt.
Gibt es einen, dann die Felder direkt vergleichen. Bei direktem Fund dann doch nichts einfügen.
Eventuell auch erstmal einfügen und dann später die Dubletten rausfiltern, wenn die Dubletten nicht sofort stören.
Wie gesagt, 100% eindeutig kann ein Hash nicht sein.
Bei einem MD5-Hash, bzw. einer
GUID (128 Bit) gibt es bei einer Datengröße von nur 17 Byte theoretisch, zu jedem Hash durchschnitlich bis zu 256 Datensätze.
Bei 18 Byte sind es schon 65-tausend, bei 20 Byte über 4 Milliarden usw.