Списки в SQL

Общие вопросы программирования, алгоритмы и т.п.

Модератор: Модераторы

Списки в SQL

Сообщение Brainenjii » 08.11.2007 15:24:22

В общем, возникла необходимость держать для каждой записи произвольный набор параметров, неважных при основной работе, но используемых при различных выборках при анализе (т.е., к примеру для машин - цвет, марка и т.п.)... Пока придумал так - делаю таблицу, в виде ID INTEGER, DESCRIPTION VARCHAR(255), и там данные типа 1 - 'Зеленая', 2 - 'Красная', 3 - 'ВАЗ'' и т.п., и в последствии в таблице с данными отвожу отдельное поле типа Varchar(255) куда записываю, к примеру '~1~3~' или '~2~3~', и дальше веду выборку из этого дела по SELECT * FROM TABLE1 WHERE FIELD1 CONTAINING '~1~3~'... В принципе все работает, но как-то стремно ^_^ На ibase.ru ничего по этому делу не нашел дельного... В общем, как подобное по-нормальному организовать? ^_^
UPD: Пользую Firebird 2.0
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46

Сообщение Attid » 08.11.2007 16:26:08

а почему на ibase бы и не спросить ? на sql ру пару дней назад похожая тема была, почитай может подчерпнешь что-нибуть.
Аватара пользователя
Attid
долгожитель
 
Сообщения: 2585
Зарегистрирован: 27.10.2006 17:29:15
Откуда: 44°32′23.63″N 41°2′25.2″E

Сообщение Eugene » 08.11.2007 19:54:20

В таблице с данными, к которой применяются параметры, хранить их значения в поле типа VARCHAR не желательно. Особенно перечилять все возможные варианты параметров в одном поле одной записи.
Лучше завести дополнительную таблицу с полями ID_XY (ID записи к которой применяются параметры), ID_PARAM (ID параметра: красный, зеленый).
Eugene
незнакомец
 
Сообщения: 4
Зарегистрирован: 05.10.2006 13:10:13

Сообщение Brainenjii » 08.11.2007 23:03:45

И точно, гораздо цивильней, спасибо ^_^
Аватара пользователя
Brainenjii
энтузиаст
 
Сообщения: 1351
Зарегистрирован: 10.05.2007 00:04:46


Вернуться в Общее

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 8

Рейтинг@Mail.ru