|
|
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
Такая задача: нужно хранить данные разных типов(дата|число|строку|булевое и т.д.) со ссылкой на запись в другой таблице. Как правильнее сделать такое распределение: разбить на таблицы(например, таблица со значениями-датами, таблица со значениями-строками) при этом в ссылке определять тип таблицы, либо тупо писать значения в varchar ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:13 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
А какие операции будут выполняться над этой таблицей? Код: plaintext 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:17 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
MikeprosoftТакая задача: нужно хранить данные разных типов(дата|число|строку|булевое и т.д.) Меня всегда интересовало, что это за задачи такие? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:18 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
система для проведения опросов, где ответы могут быть числом, датой, строкой и т.д. какие операции - добавляться, удаляться, просматриваться. =)) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:30 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
Mikeprosoftсистема для проведения опросов, где ответы могут быть числом, датой, строкой и т.д. какие операции - добавляться, удаляться, просматриваться. =))Тогда, имхо, можно обойтись varchar-ами. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:34 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
MikeprosoftТакая задача: нужно хранить данные разных типов(дата|число|строку|булевое и т.д.) со ссылкой на запись в другой таблице. Как правильнее сделать такое распределение: разбить на таблицы(например, таблица со значениями-датами, таблица со значениями-строками) при этом в ссылке определять тип таблицы, либо тупо писать значения в varchar ?Выбрал бы третий вариант. Создать таблицу для хранения значений, в которой будут поля: дата, число, строка. Хранение булевых значений - под вопросом. Мне кажется, они не нужны (ответы на вопросы - надо хранить по другому). а далее в зависимости от типа параметра, искать значение в том или ином поле этой таблицы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 14:40 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
>Меня всегда интересовало, что это за задачи такие? например поля, создаваемые пользователем из программы. то есть когда есть функционал по добваления пользователем своих данных к уже имеющимся. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 15:32 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
Теперь примерно понял для чего ---------- Cache for Windows (Intel) 2007.1 (Build 369) Fri Jun 15 2007 15:25:42 EDT Cache for Windows NT (Intel) 5.0.20 (Build 6305) Fri Sep 16 2005 11:54:10 EDT ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 15:43 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
еще такая фишка: мне надо хранить диапазоны... вот это ппц... придется всё-таки ветвленую структуру использовать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 16:12 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
Mikeprosoftеще такая фишка: мне надо хранить диапазоны... вот это ппц... придется всё-таки ветвленую структуру использовать.Диапазон - это два числа. PS: Я не думаю, что у вас кол-во базовых типов будет больше 10. Поэтому использовать отдельные таблицы особого смысла нет ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 17:47 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
Если данные, которые вводит пользователь, разнородны, то лучше подойдет тип varchar. Хотя если вам это не нравиться (мало что), то можно создать в таблице несколько столбцов каждого типа, в которые заносятся варианты ответов, т.е. нужно анализировать введенные данные на тип и в зависимости от типа, вставлять в нужный столбец. Только точно ли это нужно. Если ваша клиентская часть поддерживает ограничения на вводимые данные, то этот случай подойдет, т.к. потом будет удобно делать выборку, например, нужно сделать выборку: Найти всех сотрудников, которые в анкетах на первый ответ ввели дату больше сегодняшней. Для диапазона лучше использовать тип varchar (пример: 1...2 или a…z), если вы не хотите извращаться, т.е., например, добавлять еще n полей: конец диапазона (тоже нужно анализировать на тип данных) и признак диапазона. :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.05.2008, 18:55 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
млн. посетительЕсли данные, которые вводит пользователь, разнородны, то лучше подойдет тип varchar.У хранения в варчаре есть несколько особенностей. Самое плохое: преобразование данных из varchar Например, стандартные функции преобразовани даты в текст и обратно - зависят от региональных настроек. Некоторые библиотеки на некоторых компьютерах - могут плевать на региональные настройки и преобразовывать даты в американский формат. После этого, чтобы нормально преобразовать обратно - надо знать в каком формате записана дата. Соответственно - писать на все преобразования свои функции туда и обратно. Для чисел с плавающей точкой - тоже такие же проблемы. Разделитель запятая или точка, а некоторые библиотеки будут преобразовывать float в число в мантисой. Второе плахое свойство: невозможность нормального анализа данных без преобразования в правильный тип. Условие FLD < 5 для текста не подойдет. под это условие попадет строка '12', '125' итп. Про сравнение дат - лучше вобще не думать. при обработке больших массивов могут появиться затыки в скорости запросов из за преобразований. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 11:33 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
Bely млн. посетительЕсли данные, которые вводит пользователь, разнородны, то лучше подойдет тип varchar.У хранения в варчаре есть несколько особенностей. Самое плохое: преобразование данных из varchar Я про это и говорю. А в общем: 1) Если данные «просто нужно хранить», то подойдет varchar 2) Если нужно делать по ним анализ, выборку, то может подойти несколько столбцов (если вопрос 1, то столбец st1(varchar), если вопрос 2, то st2(date)), только нужно делать ограничения на стороне клиента для вводимых данных по определенному вопросу. 3) Можно проверять вводимые опрашиваемым данные на тип данных, заносить их в поле varchar, и потом их использовать в запросах, но это не очень удобно, как и писал Bely ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 12:00 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
значит всё-таки придется сделать несколько столбцов, только вот на диапазоны хз что придумать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 13:11 |
|
||
|
Хранение разных типов данных
|
|||
|---|---|---|---|
|
#18+
млн. посетитель1) Если данные «просто нужно хранить», то подойдет varcharЕсли данные просто нужно хранить, то их можно хранить в бумажном виде в виде анкет, по которым проводился опрос. Я не знаю ситуации, когда надо было просто хранить, а анализировать не надо (Библиотека Конгресса - не в счет). Mikeprosoftтолько вот на диапазоны хз что придумать.Для хранения числовых диапазонов можно ввести два поля. Если нужен диапазон дат - еще два поля. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 06.05.2008, 16:44 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35294697&tid=1543884]: |
0ms |
get settings: |
9ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
59ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
50ms |
get tp. blocked users: |
1ms |
| others: | 234ms |
| total: | 390ms |

| 0 / 0 |
