Страницы

Поиск по вопросам

пятница, 9 ноября 2018 г.

Хранение параметров с разными типами данных в одной таблице

Есть набор параметров с разными типами данных. У каждого параметра есть имя, набор ещё каких-то свойств и само значение параметра. Эта значение параметра может быть разных типов в зависимости самого параметра.
Вопрос: Как организовать хранение значений этих параметров в одной таблице?
Варианты которые сразу пришли в голову:
Хранить значение параметра в типа varchar и сделать ещё один столбец с описанием типа. И в случае необходимости этого параметра в приложении конвертировать его в нужный тип. Таблица с параметрами выглядела бы примерно так:
id | name | value | value_type Сделать кучу полей на каждый существующий тип параметра. То есть таблица с параметрами выглядела бы примерно так:
id | name | value_varchar | value_int | value_bit | и так далее
Какие best practice есть для решения задачи такого рода?
Уточнение задачи:
Разумеется это будет две таблицы. Одна таблица-справочник с идентификатором и именем параметра, а другая таблица-связь параметра с другой сущностью. Параметров этих будет не много. Не много в рамках БД конечно. Не 2 миллиона. Использоваться это будет следующим образом: Будет хранимка которая получает набор параметров по идентификатору той самой другой сущности. И в приложении мне нужно их распарсить в плане типа и использовать. Если это какой-то размер, то конвертируем в int или double и применять. Если это какое-то название, то конвертируем в string и используем, и так далее.
Принятое решение: Использовать тип данных sql_variant


Ответ

В MS SQL Server, начиная с версии 2008, есть такой тип данных, как sql_variant. Это именно то, что нужно вам в вашей задаче.

Комментариев нет:

Отправить комментарий