2010-08-06 2 views
0

Я хотел бы иметь вертикальную таблицу (я знаю, я знаю ... это почти неизбежно), которая может хранить поле идентификации, значение и исходный тип. Очевидно, что поле значений должно быть чем-то общим или я не смогу хранить в нем различные типы данных (varchar, text, int, decimal, bit и т. Д.).Как хранить данные в вертикальной таблице без потери точности?

Какие у вас есть предложения для такого типа установок, которые позволили бы мне не терять точность в отношении типов данных данных, предлагая гибкость и простоту использования?

+0

вы считали добавление поля «format» вместе с полем/значением/типом (при сохранении чисел в виде строк, отформатированных в соответствии с полем формата)? –

ответ

1

Ваш лучший выбор - это, безусловно, столбец VARCHAR, учитывая, что существуют довольно стандартные механизмы для преобразования большинства типов в/из String.

Пожалуйста, имейте в виду, что каждый раз, когда кто-то делает такой стол, умирает котенок. Серьезно, найдите лучший способ.

+0

+1, потому что люди должны знать, что они делают с кошками –

+0

Чуть более серьезно, я задавался вопросом, может ли varbinary (max) быть не лучше. Разве все не будет отбрасываться на двоичный и обратно без потерь? –

+0

Это было бы, но если вам когда-либо понадобилось оглядываться на содержимое таблицы, это было бы бессмысленно. Небольшая прозрачность часто стоит нескольких дополнительных байтов. – Tom

0

Вы собираетесь хранить данные по вертикали, но по большей части, не собираетесь ли вы в конечном итоге использовать определенные типы значений и вырывать их горизонтально? Я видел системы, где они имеют общие столбцы типа: varchar, int, float, date.

Для определения того, какой столбец используется для какого поля, потребуется некоторое кодирование; в противном случае вам просто придется иметь дело с преобразованием в другой формат.

Смежные вопросы