powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Поиск аналогов запчастей
40 сообщений из 40, показаны все 2 страниц
Поиск аналогов запчастей
    #39054189
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Имеется таблица с запчастями. Нужно создать таблицу аналогов запчастей. Вопрос в том, как правильно организовать это дело, чтобы не дублировать информацию в таблицах и при поиске аналогов выводить список их всех? (К примеру есть запчасть с id = 1 и id = 2, в таблице аналогов стоит соответствие 1 и 2... как сделать так, чтобы не дублировать запись вида 2 и 1 и при этом искать аналоги независимо от порядка расположения id)
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054210
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ввести признак "запчасть" и к ней лепить все id ей соответствующие
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054217
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
waszkiewicz,

должна получиться одна таблица, в которой идет соответствие id - id. Записи не должны дублироваться
типа
1 2
2 1

и вот по такой таблице осуществить эффективный поиск аналогов (групп)
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054228
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
хе-хе. а если аналогов 100 штук?
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054232
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторхе-хе. а если аналогов 100 штук?
это ровным счетом ничего не меняет
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054236
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если их то штук, то и записей будет 100 штук
задача в том и стоит, чтобы не дублировать записи с одинаковыми парами

Модератор: Тема перенесена из форума "Microsoft SQL Server".
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054257
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7,

Судя по постановке, это учебная задача?
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054262
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

вообще нет, это реальная задача.
да и думаю, это не столь важно же)
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054264
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7вообще нет, это реальная задача.
Тогда откуда такое странное ограничение "чтобы не дублировать"?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054267
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7вообще нет, это реальная задача.Совершенно не похоже.
В реальных задачах обычно существуют оригинальные номера. Если у двух запчастей есть хотя бы один совпадающий оригинальный номер (в паре с производителем, по каталогу которого идет этот номер), то условно эти запчасти можно считать аналогами.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054272
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправка - мой предыдущий был про автозапчасти.
Возможно, в других предметных областях это поиск аналогов бывает иначе. Но тогда нужно детальное описание этой части предметной области.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054280
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Можно установить правило ID1 > ID2. Поиск будет, скорее всего, менее эффективным чем с дублями - но тут уж либо дудочка, либо кувшинчик
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054298
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoftПоправка - мой предыдущий был про автозапчасти.
Возможно, в других предметных областях это поиск аналогов бывает иначе.
А у автозапчастей аналогия всегда взаимна? То есть если Б может быть использовано вместо
А, то А всегда может быть использовано вместо Б?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054306
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovmiksoftПоправка - мой предыдущий был про автозапчасти.
Возможно, в других предметных областях это поиск аналогов бывает иначе.
А у автозапчастей аналогия всегда взаимна? То есть если Б может быть использовано вместо
А, то А всегда может быть использовано вместо Б?Обычно да.
Хотя исключений и тонкостей много.
Поэтому и спрашиваю про задачу, т.к. все эти тонкости могут учитываться в разной степени.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054310
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Да, взаимная аналогия
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054313
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7,

Предметная область-то какая?
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054333
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

автозапчасти.
Я с этой областью сталкиваюсь первый раз, поэтому могу не знать каких-либо тонкостей.
Но заказчик просил именно двустороннюю аналогию.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054337
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7miksoft,

автозапчасти.
Я с этой областью сталкиваюсь первый раз, поэтому могу не знать каких-либо тонкостей.
Но заказчик просил именно двустороннюю аналогию.Тогда почему не ориентируетесь на номера?
Если они есть, то отдельно учитывать факт аналогичности обычно не надо, т.к. они прямо вытекает из номеров.

P.S. Кстати, отношение аналогичности не транзитивно.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054342
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7,

Возьми TecDoc и не мозоль ни себе ни людям. Если есть вопрос - показывай как сделал, мы тебя пошлем в правильном направлении.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054344
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Злой БобрTecDocВот ни разу не образец правильного проектирования БД.
Хотя для вникания в предметную область сойдет.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054345
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Я к тому что если у ТС боевая задача, то без знания предметной области это будет кривая и убогая поделка. Поэтому взять готовый TecDoc - наименьшее из зол.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054348
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо всем за советы, буду разбираться!
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054376
waszkiewicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
если конкретно за запчасти - то есть сущность "Запчасть" ("Колодка тормозная" например) . Туева хуча производителей выпускает её со своими артикулярными номерами. ЯТД ТС и имеет их ввиду под "id". Что мешает сделать таблицу, описывающую все "Запчасти" и объединить как я предлагал выше?
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054527
Уважаемый автор
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7,

таблица - "Запчасти" (тут все запчасти, все!!!)
таблица - "Аналоги" (id запчасти, id запчасти аналог) - подчиненная таблица, так сказать, ничего повторяться не будет!

все!
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054755
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Уважаемый автортаблица - "Аналоги" (id запчасти, id запчасти аналог) - подчиненная таблица, так сказать, ничего

осталось выяснить, кто запчасть, а кто аналог. :)
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39054769
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVУважаемый автортаблица - "Аналоги" (id запчасти, id запчасти аналог) - подчиненная таблица, так сказать, ничего

осталось выяснить, кто запчасть, а кто аналог. :)И из какого источника и на каком основании брать информацию.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055039
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSV,

Проблема еще в том, что нужная какая-то сводная таблица, в которой будут отображаться группы запчастей, которые так скажем все подходят (взаимозаменяемы, аналоги). Допустим у нас имеется определенная запчасть, и мы хотим увидеть, какие еще запчасти могут подойти. И эта запчасть не обязательно является оригиналом или аналогом.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055050
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7нужная какая-то сводная таблица, в которой будут отображаться группы запчастей, которые так скажем все подходят (взаимозаменяемы, аналоги)Не нужна, если будет опираться на номера.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055061
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
miksoft,

Да, я и имел в виду ту самую таблицу "Аналоги".
Просто если искать по левому идентификатору, то да, мы получим группу. А как поступать в случае с правым тогда? Учитывая такую вещь например, что мы не знаем, искомый идентификатор находится справа или слева.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055081
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7miksoft,

Да, я и имел в виду ту самую таблицу "Аналоги".
Просто если искать по левому идентификатору, то да, мы получим группу. А как поступать в случае с правым тогда? Учитывая такую вещь например, что мы не знаем, искомый идентификатор находится справа или слева.Храните двусторонние связи в виде двух записей (прямой и обратной) в этой таблице. Т.е. фактически это будет таблиц замен - что на что можно заменить.

Хотя в очередной раз повторяю - если ориентироваться на оригинальные номера, то и эта таблица аналогов станет не нужна. В принципе таблицу замен реализовать можно, но ее очень тяжело поддерживать в будущем при мало-мальски приличных объемах.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055098
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7А как поступать в случае с правым тогда?
Выкинуть. Оставить только левые.
Код: sql
1.
CREATE TABLE ANA_GROUPS (AAA INTEGER, DETAIL_ID INTEGER);


Код: sql
1.
2.
select detail_id from ana_groups where aaa=(select aaa from ana_groups where 
detail_id=:id)


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055128
shemik7
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,

Огромное спасибо!
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055156
Я проходил этот вопрос в кач-ве заказчика. Замены могут быть в рамках одного производителя и разных. Замена может быть односторонняя, двухсторонняя, единицы на группу, группы на единицу, с доп. работой и может еще что-то забыл. Надо понимать цель работы. Заказчику надо определиться с бизнес-ограничением. Если надо подгружать прайсы и остатки поставщиков, то надо принять к сведению, что у них могут быть разные названия одних производителей. Надо сводить наименования производителей. Имеет место, особенно в Поволжье, выдумывание номенклатуры. Для автоматики загрузки надо привязывать определенные строчки из остатков к готовым спискам. Это ОЧЕНЬ серьезная работа. Я бы рекомендовал взять готовые решения, заточенные на автобизнес.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055277
Злой Бобр
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Игорь Дубков... Я бы рекомендовал взять готовые решения, заточенные на автобизнес.
Автор не ищет легких решений. К тому же это стопудово не боевая задача.
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39055398
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
shemik7Имеется таблица с запчастями. Нужно создать таблицу аналогов запчастей. Вопрос в том, как правильно организовать это дело, чтобы не дублировать информацию в таблицах и при поиске аналогов выводить список их всех? (К примеру есть запчасть с id = 1 и id = 2, в таблице аналогов стоит соответствие 1 и 2... как сделать так, чтобы не дублировать запись вида 2 и 1 и при этом искать аналоги независимо от порядка расположения id)


PART( part_id => part_name, f1,f2,f3 ...)
PART_ANALOGUE(part_id, analogue_part_id)
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39062441
MUSYAKA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
занимаюсь похожей задачей )
1 нужна предварительная обработка поискового запроса (для уменьшения массива переборки идентификаторов), т.е. это убрать пробелы, черточки, точки , заменить кирилицу на латиницу (у меня запчасти импортные)
2 создать базу данных для поиска
тут два пути - создание "жесткой" базы и потом вечное ее обслуживание (дополнение поправляние и т.д. ( а это будет каждый день, и тут либо туда на работу идти ,либо заказчик недоволен)
- создание оболочки +админка простенькая, которая позволит править ошибки и подгружать новые записи в БД
на мой взгляд второй вариант приемлимее. потому как не существует в природе полных и корректных баз аналогов запчастей, кроме того , как правило, компания специализируется на конкретных производителях и это и будет основа БД.
3 структура БД
эталонный идентификатор и к нему массив аналогов (поверьте массив будет состоять точно не из одного ID, у меня количество доходит до 50шт и постоянно добавляется. именно поэтому и удобно сделать редактируемый вариант массива переборки)
Ну тут вопрос, а какой ID будет эталонным? Эталон у нас - это и есть запчасти от конкретных поставщиков, с которыми работает компания. если же таковых не имеется, то придется БД увеличить на количество записей из массива переборки (то есть в моем варианте в 50 раз!) и тут вы зацените предварительную обработку поискового запроса - пункт 1
-----
например, есть такой производитель MAN (грузовики делает), одна из деталей этого грузовика -ПГУ. его аналоги 9700514120, 9700514127, 81307256092, 630361AM, SG4804, 81307256084, 2250249, TT0713064, 22000033, 05011412, BK1202078AS, 23F142, 341203, 630361AM, 35898, 81307259084, 81307256085, 81307256107, 81307256116
это уже обработанные номера, изначально они выглядели чуть не так 970 051 412 0 , 81.30725.6092, 81.30725-6092 и т.д.
если не "привести" всех к единому виду, то все эти номера нужно тоже поместить в массив переборки + полезно было бы и раскладку клавы исправлять и русские буквы латинскими заменять

а что эталонный ID ? Пусть мы работает с производителем TTT, тогда наш эталон TT0713064 (в оригинале , кстати, TT07.13.064), а все остальные номера массив переборки. До и еще, я же не сказала что на один вопрос может быть больше одного ответа, т.е. результат поиска - это более одного эталонного идентификатора )))


P.S. хорошо бы все это еще и картинками сдобрить, в общем действительно такой себе филиал TECDOCа
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39062446
MUSYAKA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ой, а я сказала что таблицы должен предоставить заказчик?
а они у него есть?
а в каком виде?
поверьте опытной тете- на это уходит львиная доля времени, потому как если они и есть, то в таком виде что их еще в порядок приводить нужно (причем долгооооооо)
поэтому наличие админки - просто находка, иначе задергают. Пусть сами занимаются забивкой аналогов
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39062504
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MUSYAKAубрать пробелы, черточки, точки , заменить кирилицу на латиницуТочнее, убрать все символы, отличающиеся от букв и цифр, привести к верхнему регистру, заменить кириллицу на латиницу со схожим написанием, заменить все виды буквы "О" на цифру "0", заменить кириллическую "З" на цифру 3.
Иногда еще нужно заменить букву "l" на цифру "1".
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39062636
Фотография ПЕНСИОНЕРКА
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MUSYAKA,

может нечто по принципу Одноклассников

есть друзья
1--1ф
2--1ф
2--2ф
3--2ф

видим общих друзей 1ф и 2ф
получаем возможную группу
1

2

3
...
Рейтинг: 0 / 0
Поиск аналогов запчастей
    #39063903
MUSYAKA
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ПЕНСИОНЕРКАMUSYAKA,

может нечто по принципу Одноклассников

есть друзья
1--1ф
2--1ф
2--2ф
3--2ф

видим общих друзей 1ф и 2ф
получаем возможную группу
1

2

3

так и не так, тут другая специфика. на выходе нужно получить конкретный ответ, а не все связи. в моем понимании структуры поиск ведется по всем 1, 1ф,2,2ф ... , НО результат поиска , например, 1


а вот то что получается (выводится как результат поиска) зависит от требований заказчика. это могут быть списки только тех номеров, товар по которым лежит на складе (или доступен к заказу). если действительно вываливать абсолютно все соответствия, то это уже гораздо бОльший объем базы (а есть ли в такой объеме смысл?), т.е. в любом случае нужно знать поставленную задачу.

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


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