Игорь Столяров писал(а): 26 Сентябрь 2019, 11:12finsoftrz писал(а): ↑26 Сентябрь 2019, 8:01
Делаем в ключе второе поле по уникальному идентификатору записи. И все работает.
Да, я понял … Получается составной ключ из фрагмента наименования и ID записи. И он уникален. По идее - должно работать.
Но все это не спасет от дублирования записи по полному (смысловому содержанию) наименованию, т.к. пользователь может вводить такие длинные наименования с некоторыми неточностями !
Может быть для такого случая можно решить так: при добавлении записи с длинным наименованием выводить на экране "еще" список уже существующих записей с (UPPER/Lower, убрать лишние пробелы и т.д.) совпадающими с 10 / 20 начальными символами => далее, если смысловое содержание наименования уже существующей записи совпадает со смысловым содержанием наименования добавляемой записи (в списке также можно для каждой записи указать - сколько символов совпали от начала наименования, 1-я запись в списке max совпадение символов),
то добавить запись нельзя,
иначе - вычислим ID, (наименование => UPPER/Lower, убрать лишние пробелы и т.д.) и добавляем запись.