Есть необходимость сделать поле вида
varchar(16)[]
в нем будет массив значений от нуля до 5 записей (в среднем)
самое унылое что по этому полю надо еще и поиск делать
нужны поиски вида:
«выбрать все записи у которых меньше N членов в массиве» - это вроде просто
«выбрать все записи у которых есть член 'abc' в массиве» - это уже не особо понятно как индексировать
и самое сложное
на входе массив
"abc", "def"
а в столбиках массивы:
"abc", "abd", "def" - должно вернуть 2
"abc" - 1
"def", "abc" - 2
"eaf" - 0
и соответственно отобрать всех у кого скажем число меньше или равно 1
в приниципе проявив изрядную долю труда можно привести все это к битовым маскам но какую индексацию в таком случае применять?
BTREE вроде не ложится на работу с битовыми масками? HASH тоже
но в разные столбики не упихать (чтобы BTREE работал), поскольку количество хоть и ограничено (в максимуме пара десятков) но всеж большое