powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение разных типов данных
15 сообщений из 15, страница 1 из 1
Хранение разных типов данных
    #35294386
Mikeprosoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такая задача: нужно хранить данные разных типов(дата|число|строку|булевое и т.д.) со ссылкой на запись в другой таблице. Как правильнее сделать такое распределение: разбить на таблицы(например, таблица со значениями-датами, таблица со значениями-строками) при этом в ссылке определять тип таблицы, либо тупо писать значения в varchar ?
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294401
Dan Black
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А какие операции будут выполняться над этой таблицей?
Код: plaintext
1.
----------------------------
 Verba volent, scripta manent 
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294406
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeprosoftТакая задача: нужно хранить данные разных типов(дата|число|строку|булевое и т.д.)
Меня всегда интересовало, что это за задачи такие?
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294447
Mikeprosoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
система для проведения опросов, где ответы могут быть числом, датой, строкой и т.д.

какие операции - добавляться, удаляться, просматриваться. =))
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294461
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikeprosoftсистема для проведения опросов, где ответы могут быть числом, датой, строкой и т.д.

какие операции - добавляться, удаляться, просматриваться. =))Тогда, имхо, можно обойтись varchar-ами.
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294482
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MikeprosoftТакая задача: нужно хранить данные разных типов(дата|число|строку|булевое и т.д.) со ссылкой на запись в другой таблице. Как правильнее сделать такое распределение: разбить на таблицы(например, таблица со значениями-датами, таблица со значениями-строками) при этом в ссылке определять тип таблицы, либо тупо писать значения в varchar ?Выбрал бы третий вариант.
Создать таблицу для хранения значений, в которой будут поля:
дата, число, строка. Хранение булевых значений - под вопросом.
Мне кажется, они не нужны (ответы на вопросы - надо хранить по другому).

а далее в зависимости от типа параметра, искать значение в том или ином поле этой таблицы.
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294663
Фотография ScareCrow
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
>Меня всегда интересовало, что это за задачи такие?
например поля, создаваемые пользователем из программы. то есть когда есть
функционал по добваления пользователем своих данных к уже имеющимся.

Posted via ActualForum NNTP Server 1.4
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294697
Фотография krvsa
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Теперь примерно понял для чего
----------
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
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35294822
Mikeprosoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
еще такая фишка: мне надо хранить диапазоны... вот это ппц... придется всё-таки ветвленую структуру использовать.
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35295203
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mikeprosoftеще такая фишка: мне надо хранить диапазоны... вот это ппц... придется всё-таки ветвленую структуру использовать.Диапазон - это два числа.
PS: Я не думаю, что у вас кол-во базовых типов будет больше 10.
Поэтому использовать отдельные таблицы особого смысла нет
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35295379
Если данные, которые вводит пользователь, разнородны, то лучше подойдет тип varchar.
Хотя если вам это не нравиться (мало что), то можно создать в таблице несколько столбцов каждого типа, в которые заносятся варианты ответов, т.е. нужно анализировать введенные данные на тип и в зависимости от типа, вставлять в нужный столбец.
Только точно ли это нужно. Если ваша клиентская часть поддерживает ограничения на вводимые данные, то этот случай подойдет, т.к. потом будет удобно делать выборку, например, нужно сделать выборку: Найти всех сотрудников, которые в анкетах на первый ответ ввели дату больше сегодняшней.
Для диапазона лучше использовать тип varchar (пример: 1...2 или a…z), если вы не хотите извращаться, т.е., например, добавлять еще n полей: конец диапазона (тоже нужно анализировать на тип данных) и признак диапазона. :)
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35296336
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млн. посетительЕсли данные, которые вводит пользователь, разнородны, то лучше подойдет тип varchar.У хранения в варчаре есть несколько особенностей.

Самое плохое: преобразование данных из varchar
Например, стандартные функции преобразовани даты в текст и обратно - зависят от региональных настроек.
Некоторые библиотеки на некоторых компьютерах - могут плевать на региональные настройки и преобразовывать даты в американский формат.

После этого, чтобы нормально преобразовать обратно - надо знать в каком формате записана дата.
Соответственно - писать на все преобразования свои функции туда и обратно.

Для чисел с плавающей точкой - тоже такие же проблемы.
Разделитель запятая или точка, а некоторые библиотеки будут преобразовывать float в число в мантисой.

Второе плахое свойство: невозможность нормального анализа данных без преобразования в правильный тип.
Условие FLD < 5 для текста не подойдет. под это условие попадет строка '12', '125' итп.
Про сравнение дат - лучше вобще не думать.
при обработке больших массивов могут появиться затыки в скорости запросов из за преобразований.
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35296417
Bely млн. посетительЕсли данные, которые вводит пользователь, разнородны, то лучше подойдет тип varchar.У хранения в варчаре есть несколько особенностей.
Самое плохое: преобразование данных из varchar

Я про это и говорю. А в общем:
1) Если данные «просто нужно хранить», то подойдет varchar
2) Если нужно делать по ним анализ, выборку, то может подойти несколько столбцов (если вопрос 1, то столбец st1(varchar), если вопрос 2, то st2(date)), только нужно делать ограничения на стороне клиента для вводимых данных по определенному вопросу.
3) Можно проверять вводимые опрашиваемым данные на тип данных, заносить их в поле varchar, и потом их использовать в запросах, но это не очень удобно, как и писал Bely
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35296680
Mikeprosoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
значит всё-таки придется сделать несколько столбцов, только вот на диапазоны хз что придумать.
...
Рейтинг: 0 / 0
Хранение разных типов данных
    #35297533
Bely
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
млн. посетитель1) Если данные «просто нужно хранить», то подойдет varcharЕсли данные просто нужно хранить, то их можно хранить в бумажном виде в виде анкет, по которым проводился опрос.

Я не знаю ситуации, когда надо было просто хранить, а анализировать не надо (Библиотека Конгресса - не в счет).

Mikeprosoftтолько вот на диапазоны хз что придумать.Для хранения числовых диапазонов можно ввести два поля. Если нужен диапазон дат - еще два поля.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
create table ttt
(
...
FL_INTERV_BEG   FLOAT,  /* Диапазон чисел с плав. точкой*/
FL_INTERV_END   FLOAT,
...
DT_INTERV_BEG   DATE,  /* Диапазон дат*/
DT_INTERV_END   DATE,
...
)
...
Рейтинг: 0 / 0
15 сообщений из 15, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Хранение разных типов данных
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]