Лучший способ хранить диапазоны и отдельные значения в mysql

просто столкнулся с небольшой проблемой прямо сейчас.

У меня есть макетная таблица, содержащая одно поле pages. Это должно указать, для каких страниц должен применяться макет.

Возможное содержимое — это «закрытые» диапазоны, такие как '3-5', или открытые диапазоны, такие как '3-*'. Но также должна быть возможность добавлять отдельные страницы.

Итак, есть ли хороший способ создать такой контент?

'3-5;11;15;17-*'

в одном поле?

Или вы знаете лучшие способы?

Есть ли возможность запросить это поле, например

SELECT * WHERE IN_RANGE(pages, '5') (Псевдокод)

Я хочу предотвратить создание таблицы page, потому что она не будет содержать ничего другого, а также не хочет выполнять проверку в php.

Я рад предоставить дополнительную информацию, если это необходимо.


person Tobias Golbs    schedule 02.02.2014    source источник


Ответы (1)


Это сложный вопрос, я не вижу для этого «родной» вариант sql. Моя первая идея заключалась в том, чтобы хранить информацию о страницах в виде varchar и реализовать метод для токенизации этой строки, чтобы у вас были значения, которые затем можно было обработать с помощью sql-запроса.

person ziker    schedule 02.02.2014