Последний столбец image_hash
содержит изображение ha sh файлов изображений (varchar
).
Моя цель - создать уникальное ограничение для этого столбца, но оно должно соответствовать одному определенному условию c.
Например, если image_ha sh 1 и image_ha sh 2 одинаковы - тогда сходство равно 1
Если они полностью разные - сходство → 0
Для подобие, я думаю, разница Хэмминга должна подходить.
Условие:
Если разница сходства между image_ha sh 1 и image ha sh 2 меньше, чем X (например, 0,1), тогда хеши считаются одинаковыми, и это будет нарушением уникальности.
Если сходство больше, чем X, то ограничение уникальности не нарушается.
Я пробовал:
SELECT image_hash, similarity(image_hash, '00041dffff101800') AS sml
FROM archives_imagemodel
WHERE id=431
Но это слишком чувствительный способ, и я до сих пор не знаю, как преобразовать его в уникальное ограничение.
Я плохо разбираюсь в Postgres, так что извините, если вопрос глупый или не соответствует действительности
Есть идеи?
Спасибо
* 103 0 *