Тип данных SQL для хранения версий сборки - PullRequest
10 голосов
/ 31 июля 2010

Какой тип данных я должен использовать для столбца SQL для хранения версии продукта, например.

Version
0.1
0.1.1
0.2
1.1
1.1.647
2.0
.....

В запросе я должен иметь возможность сортировать их по номеру версии, и я хочу, чтобы оптимальный запрос нашел наибольшее число.

Спасибо

Ответы [ 4 ]

12 голосов
/ 31 июля 2010

Я бы рассмотрел сохранение каждой части числа в отдельном поле TINYINT / SMALLINT.

9 голосов
/ 31 июля 2010

Возможно иметь три или четыре числовых поля в таблице версий:

Major, Minor, Revision, Build
4 голосов
/ 18 июля 2017

Хорошим решением было бы использовать целое число, строящее значение для хранения следующим образом:

MAJOR * 10000 + MINOR * 100 + Revision

Предполагая, что каждое из них может находиться в диапазоне от 0..99.Если вы хотите перейти на 0..999, используйте

MAJOR * 1000000 + MINOR * 1000 + Revision

Это будет правильно отсортировать, легко запросить, будет компактным (1 столбец int), легко декомпозируется и даже может быть декомпозировано визуально.

4 голосов
/ 11 декабря 2014

Хранение в отдельных числовых полях - хорошая идея.Сохранение в виде строки в одном поле прервет сортировку, когда одна из частей достигнет 1000. Например, 1.2.999 появится до (или будет отображаться как новее) 1.2.1000, когда она должна появиться после.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...