Это зависит от нескольких факторов, таких как:
- Сколько переключателей установлено для каждого клиента
- Сколько переключателей фактически используется
- Как часто добавляются переключатели
Если бы мне пришлось угадывать (и я бы угадывал), я бы сказал, что вы действительно хотите, это теги. В одной таблице есть клиенты с уникальным идентификатором для каждой, в другой - теги (имя тега и уникальный идентификатор), а в третьей - пары «идентификатор клиента / идентификатор тега», чтобы указать, какие клиенты имеют какие теги.
Это отличается от вашего решения № 2 тем, что теги присутствуют только для клиентов, для которых этот переключатель имеет значение true. Другими словами, вместо сохранения идентификатора клиента, идентификатора коммутатора и логического значения вы сохраняете только идентификатор клиента и идентификатор коммутатора, но только для клиентов с этим набором коммутаторов.
Это занимает примерно одну треть пространства над решением номер два, но реальное преимущество перед решениями один и три: индексация. Если вы хотите выяснить, например, у каких клиентов установлены переключатели 7, 45 и 130, а не 86 или 14, вы можете сделать это эффективно с помощью одного индекса в таблице тегов, но практического способа сделать это с другими решения.