Я сохраняю в столбце список состояний, разделенных запятыми:
Вот так: 1,2,3, 4,5,6,7,8 .. и так далее, только их идентификаторы.
Затем я выполняю запрос, чтобы получить все строки, которые имеют состояние с идентификатором 8, и он работает, когда в списке состояний мало элементов.
Это запрос и таблица:
mysql> select id_partner, name, states from partner where 8 IN (states);
+------------+----------------+--------------------+
| id_partner | name | states |
+------------+----------------+--------------------+
| 1 | Inmo Inmo | 8,9,10 |
| 2 | Foto Piso | 8,9,10,11,12,13,14 |
| 4 | PARTNER 001-A | 8 |
| 6 | EnAlquiler | 8 |
| 7 | Habitaclia.com | 8,43,50 |
+------------+----------------+--------------------+
5 rows in set (0.00 sec)
Если Состояние столбца содержит 10 идентификаторов, разделенных запятыми, он будет работать, но если он имеет 50 или более, он больше не будет работать. В приведенном выше результате не будет отображаться строка с множеством состояний, в том числе с идентификатором 8.
Есть идеи? Я использую этот подход, чтобы не создавать еще одну таблицу для сохранения связи между партнером и состояниями, или мне лучше сделать это?