Russian Qt Forum

Qt => Базы данных => Тема начата: DpoHro от Май 25, 2009, 12:51



Название: Какое поле использовать для хранения QVariant в mysql?
Отправлено: DpoHro от Май 25, 2009, 12:51
У меня есть колонка где будут храниться данные небольшого объема но их тип может быть строкой, целым числом, числом с плавающей точкой, датой и пр. какого типа обозвать поле для хранения таких данных посоветуете?


Название: Re: Какое поле использовать для хранения QVariant в mysql?
Отправлено: break от Май 26, 2009, 06:30
Можно хранить в 2-х колонках - первая колонка собственно тип (целого типа и будет соответствовать подтипам кутешного варианта, чтобы проще было потом читать)

Вторая колонка данные - строка (для FB я бы взял varchar) с запасом по длине символов соответственно самой длинной строке или числу с максимум знаком которое будет храниться или сколько не жалко...

Писать через toString
Читать в зависимости от типа через соответвующие методы

можно слить в 1 колонку и использовать специфический разделитель - но это изврат уже...


Название: Re: Какое поле использовать для хранения QVariant в mysql?
Отправлено: Rcus от Май 26, 2009, 07:18
Можно хранить и в одном поле, QVariant умеет записываться в QDataStream, только при хранении собственных типов необходимо переопределить и зарегистрировать операторы сохранения в поток (ну и чтения). Проблема только в неиндексируемости данного представления


Название: Re: Какое поле использовать для хранения QVariant в mysql?
Отправлено: lit-uriy от Май 26, 2009, 08:20
>>Проблема только в неиндексируемости данного представления
тогда может проще BLOB?


Название: Re: Какое поле использовать для хранения QVariant в mysql?
Отправлено: Admin от Май 26, 2009, 08:24
я недавно тоже думал над проблемкой нужно было хранить int и string
сначала 2 поля завел - но SQL запросы стали не преподьемные для меня

потом завел поле типа text -  и не парюсь )


Название: Re: Какое поле использовать для хранения QVariant в mysql?
Отправлено: DpoHro от Май 26, 2009, 20:16
я недавно тоже думал над проблемкой нужно было хранить int и string
сначала 2 поля завел - но SQL запросы стали не преподьемные для меня

потом завел поле типа text -  и не парюсь )

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


Название: Re: Какое поле использовать для хранения QVariant в mysql?
Отправлено: Admin от Май 27, 2009, 11:01
Вот если бинарные данные захотите хранить - то тут придеться скобки квотить. А так пожалуйста.