Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Web программирование > SQL, базы данных
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 22.04.2017, 21:18   #1
Gurza-Alex
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 16
По умолчанию Построение вариантов

Добрый день всем!

У меня есть таблица, в ней есть id,comp,device,variant,id_variant.
На каждом компе у меня есть варианты их переоснащения(хранятся они в variant),
например:
1;ОЗУ-512, 1,11
1;ОЗУ-256, 1,11
1;видеокарта -512, 1,11

1;ОЗУ-256, 2,12
1;ОЗУ-128, 2,12
1;видеокарта -256, 2,12

2;ОЗУ-512, 1,21
2;ОЗУ-256, 1,21
2;видеокарта -512, 1,21

и т.д.

id_variant- это конкатенация comp и variant.

И мне нужно составить все возможные варианты варианты переоснащения компов, это как сочетание по id_variant, но тут каждый комп уникален... Должно получиться следующее:
(если предположим что у нас 3 компа и по 3 варианта)

comp,id_variant
1,11
2,21
3,31

1,12
2,21
3,31

1,13
2,21
3,31

1,11
2,22
3,31

1,11
2,23
3,31

1,11
2,21
3,32

1,11
2,21
3,33
и т.д.

И как это можно прописать запросом в SQL? Прописывать в ручную - это бред, количество компов много и вариантов много, и они могут увеличиваться... декартово произведение не совсем помогает, он или слишком много вариантов предлагает или не все выдает... Не знаю как это сделать(
Помогите пожалуйста.
Gurza-Alex вне форума Ответить с цитированием
Старый 22.04.2017, 21:58   #2
hoolygan
Пользователь
 
Регистрация: 11.04.2017
Сообщений: 64
По умолчанию

Категорическая неправильная организация хранения данных в sql. Айди - это уникальный номер, отталкивайтесь от этого. И нормализируйте таблицу.
hoolygan вне форума Ответить с цитированием
Старый 23.04.2017, 08:17   #3
Gurza-Alex
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 16
По умолчанию

id_variant - это я просто назвал, так как вариант в варианте не знал как лучше назвать, поэтому назвал так, это роли не играет....

Мне бы хотя бы пример как можно примерно сделать такое, там я соображу... А пока я в тупике(
Gurza-Alex вне форума Ответить с цитированием
Старый 23.04.2017, 09:27   #4
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
3 компа и по 3 варианта
27 сочетаний, в результате 81 строка
Цитата:
количество компов много и вариантов много, и они могут увеличиваться
Насколько много? Допустим 10 компов по 3 варианта - 59049 сочетаний, в результирующей выборке 590490 строк. Ну и так далее, экспоненциальный рост. Представь сколько будет для парка в 30 компов ))

Сделать в принципе можно, используя возможности процедурных команд SQL типа курсоры и циклы. Или with пристроить. А оно надо?
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.04.2017 в 09:33.
Аватар вне форума Ответить с цитированием
Старый 23.04.2017, 11:52   #5
Gurza-Alex
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Сделать в принципе можно, используя возможности процедурных команд SQL типа курсоры и циклы. Или with пристроить. А оно надо?
надо( и будет примерно до 54 компа и до 6 вариантов...
Я знаю что это сочетание, но как можно написать не со статическими параметрами, я не знаю( пытался что-то найти, но то бред, то не то, то еще фигня какая-то... Вот и мучаюсь думаю, уже почти месяц над этой фигней работаю, остальное все нормально, хотя там тоже не меньше строк и работ... А тут загвоздка(
Есть предложения как это можно реализовать?
Gurza-Alex вне форума Ответить с цитированием
Старый 23.04.2017, 16:13   #6
Аватар
Старожил
 
Аватар для Аватар
 
Регистрация: 17.11.2010
Сообщений: 19,042
По умолчанию

Цитата:
будет примерно до 54 компа и до 6 вариантов
Шутишь? Если еще 6 вариантов для каждого компьютера... Ни один SQL-сервер не потянет )) Это же триллионы в какой-то степени. Большой между прочем. Да о чем я. Даже если каждый по 2. Прикинь число сочетаний 2^54. Облом полный ))
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию

Последний раз редактировалось Аватар; 23.04.2017 в 16:20.
Аватар вне форума Ответить с цитированием
Старый 23.04.2017, 16:39   #7
ADSoft
Старожил
 
Регистрация: 25.02.2007
Сообщений: 4,150
По умолчанию

А в целом задача то какая стоит? Наверное что-то то тривиально, типа фильтра для выбора компа в инет магазине? Там комбинации все знать не нужно...
ADSoft вне форума Ответить с цитированием
Старый 23.04.2017, 16:51   #8
Gurza-Alex
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от ADSoft Посмотреть сообщение
А в целом задача то какая стоит? Наверное что-то то тривиально, типа фильтра для выбора компа в инет магазине? Там комбинации все знать не нужно...
Есть много компов и у них свои задачи и для каждого компа нужно разные девайсы, с помощью этих вариантов, после их составления конечно(что пока не получается), считаю энтропию и выбираю самый лучший вариант переоснащения компов... Это для статистики и правильного выбора переоснащения компа...
Gurza-Alex вне форума Ответить с цитированием
Старый 23.04.2017, 16:54   #9
Gurza-Alex
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 16
По умолчанию

Цитата:
Сообщение от Аватар Посмотреть сообщение
Шутишь? Если еще 6 вариантов для каждого компьютера... Ни один SQL-сервер не потянет )) Это же триллионы в какой-то степени. Большой между прочем. Да о чем я. Даже если каждый по 2. Прикинь число сочетаний 2^54. Облом полный ))

Да вот такая задача, не особо то я шучу, сам понимаю сколько это будет, считал, но SQL справиться, столько он записывал, конечно на минут 15-20 подзавис, но выдал 19 млрд. И там не будет трилионов.... там милиарды....
Gurza-Alex вне форума Ответить с цитированием
Старый 24.04.2017, 18:44   #10
Gurza-Alex
Пользователь
 
Регистрация: 22.04.2017
Сообщений: 16
По умолчанию

А через деревья построить возможно? Если да, то как это сделать?
Gurza-Alex вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
создание массива вариантов mahatmaQL Общие вопросы Delphi 4 27.06.2016 00:15
Перебор вариантов Kirom Помощь студентам 2 27.01.2015 18:45
перебор вариантов luffi Общие вопросы Delphi 2 05.12.2011 16:47
выбор возможных вариантов Asante Microsoft Office Excel 2 02.12.2011 16:34
Построение матрицы вариантов раскроя max1m9 Microsoft Office Excel 0 07.06.2010 17:27