powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Разные типы данных в одном поле
9 сообщений из 9, страница 1 из 1
Разные типы данных в одном поле
    #32863584
Cage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Предположим, что мне нужно хранить информацию о человеке в одной таблице. Таблица из двух колонок: характеристика и ее значение.

Характеристик много, например такие:
Фамилия
Имя
Дата рождения
Рост
Вес
Пол
Цвет волос
Цвет глаз
и т.п.

Нетрудно заметить, что значения по своим типам для них разные. Вопрос - как описать вторую колонку (в mySQL)?

Осмелюсь предположить, что универсального типа данных, позволяющего хранить информацию любого типа, в mySQL нет.

Можно хранить цифры и даты в формате varchar, но этого делать не хочется по понятным причинам.
Может кто-нибудь сможет посоветовать мне более удачный вариант решения подобной проблемы?

Спасибо.
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32863606
DocAl
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Могу порекоммендовать подумать над иной структурой данных...
Зачем под каждого человека отводить собственную таблицу?
В принципе, у любого из них есть цвет глаз, пол, рост и вес, так что всё это вполне можно забить в одну таблицу.
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32863607
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А почему нужно все эти данные хранить в 1 колонке? Если их надо будет не просто распечатать 1 строкой, а обрабатывать отдельно, геморой обеспечен. Обычно для каждого атрибута заводят свою колонку со своим типом данных
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32863880
Cage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DocAlМогу порекоммендовать подумать над иной структурой данных...Давайте подумаем вместе? :)
DocAlЗачем под каждого человека отводить собственную таблицу?
В принципе, у любого из них есть цвет глаз, пол, рост и вес, так что всё это вполне можно забить в одну таблицу.Я придумал пример с людьми, т.к. "на людях" мне проще было объяснить, что же мне все-таки нужно...

На самом деле мне нужно сохранить в базе характеристики товаров.
Товары хранятся в отдельной таблице и у каждого есть свой номер.
Характеристик много (350-400), и должна быть возможность добавлять неограниченное количество новых. Естественно, не у каждого товара может быть заполнена каждая характеристика. Например, у сотового телефона модель есть, а у книги ее нет. И наоборот, у книги есть издатель и т.д.

tru55В принципе, у любого из них есть цвет глаз, пол, рост и вес, так что всё это вполне можно забить в одну таблицу.

Сначала я думал для каждого типа товара создать отдельную таблицу с полями-характеристиками. Одна запись - это информация об одном товаре, о всех его характеристиках.
Но, во первых, типов товаров много, таблиц получается тоже много. Мне показалось это не удобным...
Во-вторых, для добавления новых характеристик придется менять структуру БД, а этого делать не хочется.
И в-третьих, таблицы получатся не оптимальными, т.к. заполнить для каждого товара каждую характеристику, которая у него есть, можно только теоретически (в моем случае). Т.е., например, год издания есть у каждой книги, но известен он будет только для части книг и т.д.

Сейчас я склоняюсь к тому, чтобы сделать отдельную таблицу с характеристиками всех товаров, где они будут пронумерованы.

Я рассчитывал сделать связывающую таблицу:
[№ товара][№ характеристики][Значение]
Но вот типы данных меня подвели... :)
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32863904
tru55
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я рассчитывал сделать связывающую таблицу:
[№ товара][№ характеристики][Значение]
Но вот типы данных меня подвели... :)


Если использовать подобную структуру, то можно вместо 1 колонки [Значение] завести 3: number, date, varchar2. Конечно, varchar2 позволяет хранить и дату, и число, но гемороя при работе будет больше.
А вообще, это вопрос для форума "Проектирование БД". Мое мнение - дело в структуре, а типы данных здесь ни при чем.
Есть и более сложные решения, когда-то работал с одним из них. Да, гибкость при добавлении новых свойств имеется. Но на быстродействие это оказывает самое негативное действие
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32864302
Фотография Green2
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поищите в форуме проектировании баз данных универсальные справочники,
там люди не такое в одно поле забабахивали.
--

Posted via ActualForum NNTP Server 1.1
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32871223
Cage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
tru55Если использовать подобную структуру, то можно вместо 1 колонки [Значение] завести 3: number, date, varchar2.Мне такое уже предлагали в одном форуме. Это решение показалось мне довольно простым и удобным, но в то же время избыточным...
tru55Есть и более сложные решения, когда-то работал с одним из них.Не могли бы Вы описать, в чем суть этого решения и является ли оно более удачным и оптимальным.
tru55Да, гибкость при добавлении новых свойств имеется. Но на быстродействие это оказывает самое негативное действиеНу что поделаешь :)

Green2Поищите в форуме проектировании баз данных универсальные справочники, там люди не такое в одно поле забабахивали.Поискал... Много всего интересного нашел (в том числе и по моей теме), но, к сожалению, ничего лучше того, что предложил tru55 я не нашел.
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32871888
Фотография Dogen
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cage tru55Если использовать подобную структуру, то можно вместо 1 колонки [Значение] завести 3: number, date, varchar2.Мне такое уже предлагали в одном форуме. Это решение показалось мне довольно простым и удобным, но в то же время избыточным...

Избыточное? Хорошо, сделайте не три колонки а три таблицы, пустот не будет.
...
Рейтинг: 0 / 0
Разные типы данных в одном поле
    #32872373
Cage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
DogenИзбыточное? Хорошо, сделайте не три колонки а три таблицы, пустот не будет.Вот. А такое придумал я - если кому интересно ;)

Но остаются вопросы, какой вариант из этих лучше, и есть ли еще более удачные варианты...
...
Рейтинг: 0 / 0
9 сообщений из 9, страница 1 из 1
Форумы / MySQL [игнор отключен] [закрыт для гостей] / Разные типы данных в одном поле
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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