Полагаю, я мог бы создать отдельные поля, а затем получить представление, объединяющее их в один логический столбец. Есть мнения по этому поводу?
Зависит от источника данных. Если вы получаете данные от пользователей (или какой-либо другой системы) в произвольной форме и вам не важно, какой это тип данных, тогда лучший способ их хранения - это наиболее общий способ (varchar и т. Д.) , Если входящие данные более структурированы, и вы заботитесь об этой структуре, то имеет смысл сохранить эту структуру в базе данных, используя отдельные поля.
С точки зрения SELECT это не имеет большого значения; Вы можете сохранить его в любом случае и прочитать как ту же схему. Как только вы попадаете в фильтры (как вы упоминаете), все становится немного более волосатым, но все же легко выполнимым. Тем не менее, вы не указываете, нужно ли вам иметь возможность обновлять эти данные, и если да, то нужно ли проводить принудительную проверку данных.
Судя по его звукам, вам нужно выполнять различные типы поиска в зависимости от "типа" сохраняемого значения. Поэтому может иметь смысл добавить поле Тип, чтобы любые фильтры можно было быстро ограничить типом значений, которые вас интересуют. Заметьте, под Type я имею в виду более логичную область применения Type; не фактический тип данных, который хранится.
Я бы рекомендовал использовать одно поле со столбцом типа, если вам нужно легко поддерживать UPDATE или использовать несколько полей (или таблиц, если это совершенно разные наборы данных), если SELECTing и фильтрация - это все, что необходимо.