Есть список фирм. Каждая фирма работает в нескольких из 10 регионов. Каждая фирма предоставляет несколько из 20 услуг. И в каждой фирме говорят на 1-2 из 5 языков.
Как посоветуете организовать структуру таблиц, для максимально быстрого поиска?
Roman Kitaev: А вы могли бы привести пример? Вот я смотрю такую штуку: sqlfiddle.com/#!2/3ae21/4
Там три таблицы - записи, категории записей и их связывание. И один джоин. А как будет выглядеть, если свойств несколько?
Да нет, не показалось. Просто уточняю чтобы не косячить)
А вот массивы PostgreSQL - это очень интересно, кстати, спасибо!
То есть в случае с регионами, я создаю region = [1,0,0,1,0]. Где позиция в массиве = регион в котором работаем и далее ищу SELECT * FROM companies WHERE region[0] = 1
Верно? И это быстро работает?
IsaevDev: Вообще, для работы с массивами в пострю есть специальные операторы (@>, например). Плюс, эти массивы можно индексировать (GIN, GiST индексы). Работает это быстро.