Структура и интерфейс таблицы "всех вариантов"

Работа VB и СУБД (Access, MSSQL, MySQL, Oracle и пр.)
Правила форума
При создании новой темы не забывайте указывать используемую СУБД.
Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Структура и интерфейс таблицы "всех вариантов"

Сообщение Matew » 03.06.2009 (Ср) 2:38

Для примера есть 3 таблицы: A,B, C. (На самом деле таблиц у меня 11)
соответственно их значения A1, A2,...An; B1, B2,...Bn; C1, C2,...Cn
Нужно создать табличку всех нужных(возможных в жизни) вариантов сочетаний этих таблиц, т.е. типо:
A1, B1, C1
A1, B1, C2
A2, B2, C1
...
и т.д.
Скажем, например строки:
A2, B3, C1
быть не должно (т.к. в жизни это не реализуемо).
т.е. максимум в таблице строк при прямом переборе будет An * Bn * Cn (А у меня таблиц 11 и значний в них может быть прилично).
Самое сложно, это работать с такой табличкой. Как можно это реорганизовать или упростить? Если упростить не получится, то подкиньте идейку с интерфейсом...

Пример:
Таблица A:
1.Ложка
2.Вилка
Таблица Б:
1.Глабокая тарелка
2.Плоская тарелка
Таблица C:
1.Суп
2.Котлета
Возможные варианты:
Суп, глубокая тарелка, ложка
Котлета, плоская тарелка, вилка
Котлета, глубокая тарелка, вилка
и т.д.
Невозможные варианты:
Суп, глубокая тарелка, вилка
Суп, плоская тарелка, ложка
и т.д.
Последний раз редактировалось Matew 04.06.2009 (Чт) 7:41, всего редактировалось 2 раз(а).
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

alibek
Большой Человек
Большой Человек
 
Сообщения: 14205
Зарегистрирован: 19.04.2002 (Пт) 11:40
Откуда: Russia

Re: Структура и интерфейс таблицы "всех вариантов"

Сообщение alibek » 03.06.2009 (Ср) 7:37

Это называется декартово произведение и при связывании таблиц используется именно оно, после чего ограничивается различными критериями.
Код: Выделить всё
select * from a, b, c

Но подобное требование обычно означает, что дизайн приложения не продуман.
Lasciate ogni speranza, voi ch'entrate.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Re: Структура и интерфейс таблицы "всех вариантов"

Сообщение Matew » 04.06.2009 (Чт) 1:44

alibek, в том то и дело, что мне нужны не абсолютно все значения, а только нужные сочетания (заполняемые человеком).
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Структура и интерфейс таблицы "всех вариантов"

Сообщение Денис » 04.06.2009 (Чт) 8:02

Можно объединять, как говорит Алибек, а можно сделать отдельную таблицу, типа
    ID - ID1 - ID2 - ID3 - ...
    где ID - порядковый номер записи
    ID1 - идентификатор записи в первой таблице
    ID2 - идентификатор записи в второй таблице
    ID1 - идентификатор записи в третьей таблице
    ...
А потом строишь список согласно записям в этой таблице связей.
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.

Matew
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 894
Зарегистрирован: 28.06.2004 (Пн) 17:44
Откуда: Дальний Восток, г. Ха

Re: Структура и интерфейс таблицы "всех вариантов"

Сообщение Matew » 04.06.2009 (Чт) 8:41

Денис, это самый простой и очевидный вариант. При этом на каждую запись из первого столбца (который я выбрал главным, исходя из логики программы)(если поставить фильтр) у меня приходится около 200 записей. С такой таблицей очень неудобно работать. Объединить, как предложил alibek вообще невозможно, т.к. очень трудно проследить закономерность между записями.
Алкоголь и сканеры-ваши враги! Не верите-смотрите аватару :-)

arvitaly
Постоялец
Постоялец
 
Сообщения: 485
Зарегистрирован: 12.04.2009 (Вс) 0:30
Откуда: Казань

Re: Структура и интерфейс таблицы "всех вариантов"

Сообщение arvitaly » 04.06.2009 (Чт) 10:27

Генерация всех подмножеств данного множества

Денис
Доктор VB наук
Доктор VB наук
Аватара пользователя
 
Сообщения: 2734
Зарегистрирован: 07.11.2006 (Вт) 13:55
Откуда: Ейск, Краснодарский край

Re: Структура и интерфейс таблицы "всех вариантов"

Сообщение Денис » 04.06.2009 (Чт) 10:44

Matew, сдается мне, что ты что-то не так делаешь, раз простой вариант, зарекомендовавший себя в сотнях тысяч программных продуктов, кажется тебе неудобным. Я видал точно такую же таблицу связей, но еще и разбитую датами на периоды, так, что можно было в программе смотреть, что было с чем связано год назад. И записей тиам было не 200 а 2000, и никаких неудобств в работе это не вызывало.
Рассказывай поподробнее, что за логика программы у тебя?
Программирование — богоизбранная дисциплина! Если бог и есть, то вселенную он скомпилировал, не иначе.


Вернуться в Базы данных

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

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

    TopList  
cron