|
|
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
Предположим, что мне нужно хранить информацию о человеке в одной таблице. Таблица из двух колонок: характеристика и ее значение. Характеристик много, например такие: Фамилия Имя Дата рождения Рост Вес Пол Цвет волос Цвет глаз и т.п. Нетрудно заметить, что значения по своим типам для них разные. Вопрос - как описать вторую колонку (в mySQL)? Осмелюсь предположить, что универсального типа данных, позволяющего хранить информацию любого типа, в mySQL нет. Можно хранить цифры и даты в формате varchar, но этого делать не хочется по понятным причинам. Может кто-нибудь сможет посоветовать мне более удачный вариант решения подобной проблемы? Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:13 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
Могу порекоммендовать подумать над иной структурой данных... Зачем под каждого человека отводить собственную таблицу? В принципе, у любого из них есть цвет глаз, пол, рост и вес, так что всё это вполне можно забить в одну таблицу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:20 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
А почему нужно все эти данные хранить в 1 колонке? Если их надо будет не просто распечатать 1 строкой, а обрабатывать отдельно, геморой обеспечен. Обычно для каждого атрибута заводят свою колонку со своим типом данных ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 16:20 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
DocAlМогу порекоммендовать подумать над иной структурой данных...Давайте подумаем вместе? :) DocAlЗачем под каждого человека отводить собственную таблицу? В принципе, у любого из них есть цвет глаз, пол, рост и вес, так что всё это вполне можно забить в одну таблицу.Я придумал пример с людьми, т.к. "на людях" мне проще было объяснить, что же мне все-таки нужно... На самом деле мне нужно сохранить в базе характеристики товаров. Товары хранятся в отдельной таблице и у каждого есть свой номер. Характеристик много (350-400), и должна быть возможность добавлять неограниченное количество новых. Естественно, не у каждого товара может быть заполнена каждая характеристика. Например, у сотового телефона модель есть, а у книги ее нет. И наоборот, у книги есть издатель и т.д. tru55В принципе, у любого из них есть цвет глаз, пол, рост и вес, так что всё это вполне можно забить в одну таблицу. Сначала я думал для каждого типа товара создать отдельную таблицу с полями-характеристиками. Одна запись - это информация об одном товаре, о всех его характеристиках. Но, во первых, типов товаров много, таблиц получается тоже много. Мне показалось это не удобным... Во-вторых, для добавления новых характеристик придется менять структуру БД, а этого делать не хочется. И в-третьих, таблицы получатся не оптимальными, т.к. заполнить для каждого товара каждую характеристику, которая у него есть, можно только теоретически (в моем случае). Т.е., например, год издания есть у каждой книги, но известен он будет только для части книг и т.д. Сейчас я склоняюсь к тому, чтобы сделать отдельную таблицу с характеристиками всех товаров, где они будут пронумерованы. Я рассчитывал сделать связывающую таблицу: [№ товара][№ характеристики][Значение] Но вот типы данных меня подвели... :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 17:55 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
Я рассчитывал сделать связывающую таблицу: [№ товара][№ характеристики][Значение] Но вот типы данных меня подвели... :) Если использовать подобную структуру, то можно вместо 1 колонки [Значение] завести 3: number, date, varchar2. Конечно, varchar2 позволяет хранить и дату, и число, но гемороя при работе будет больше. А вообще, это вопрос для форума "Проектирование БД". Мое мнение - дело в структуре, а типы данных здесь ни при чем. Есть и более сложные решения, когда-то работал с одним из них. Да, гибкость при добавлении новых свойств имеется. Но на быстродействие это оказывает самое негативное действие ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 13.01.2005, 18:09 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
Поищите в форуме проектировании баз данных универсальные справочники, там люди не такое в одно поле забабахивали. -- Posted via ActualForum NNTP Server 1.1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.01.2005, 08:41 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
tru55Если использовать подобную структуру, то можно вместо 1 колонки [Значение] завести 3: number, date, varchar2.Мне такое уже предлагали в одном форуме. Это решение показалось мне довольно простым и удобным, но в то же время избыточным... tru55Есть и более сложные решения, когда-то работал с одним из них.Не могли бы Вы описать, в чем суть этого решения и является ли оно более удачным и оптимальным. tru55Да, гибкость при добавлении новых свойств имеется. Но на быстродействие это оказывает самое негативное действиеНу что поделаешь :) Green2Поищите в форуме проектировании баз данных универсальные справочники, там люди не такое в одно поле забабахивали.Поискал... Много всего интересного нашел (в том числе и по моей теме), но, к сожалению, ничего лучше того, что предложил tru55 я не нашел. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 00:25 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
Cage tru55Если использовать подобную структуру, то можно вместо 1 колонки [Значение] завести 3: number, date, varchar2.Мне такое уже предлагали в одном форуме. Это решение показалось мне довольно простым и удобным, но в то же время избыточным... Избыточное? Хорошо, сделайте не три колонки а три таблицы, пустот не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 11:52 |
|
||
|
Разные типы данных в одном поле
|
|||
|---|---|---|---|
|
#18+
DogenИзбыточное? Хорошо, сделайте не три колонки а три таблицы, пустот не будет.Вот. А такое придумал я - если кому интересно ;) Но остаются вопросы, какой вариант из этих лучше, и есть ли еще более удачные варианты... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.01.2005, 14:03 |
|
||
|
|

start [/forum/topic.php?fid=47&gotonew=1&tid=1854431]: |
0ms |
get settings: |
4ms |
get forum list: |
11ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
156ms |
get topic data: |
8ms |
get first new msg: |
9ms |
get forum data: |
2ms |
get page messages: |
34ms |
get tp. blocked users: |
1ms |
| others: | 197ms |
| total: | 426ms |

| 0 / 0 |
