
Pretorian
17.06.2016
08:19:06
Скажем я знаю что 1 и 2 это одно, 2 и 3 тоже, но 1 есть в бд, а 2 нет, надо забить 3

Максим
17.06.2016
08:19:15
У каждого назначения есть его набор характеристик обязательных и необязательных. И по каждой характеристике каждое значение что уже есть в системе становится доступным для выбора из списка.
Частично решит проблему.
Остальное на уровне эвристики и нейронных алгоритмов.

Google

Pretorian
17.06.2016
08:20:25
Может разбрасывать по разным группам если не найден аналог, а потом объединять по мере поступления данных?

Максим
17.06.2016
08:20:59
Назначение и есть группа, только более гибкая. Сами назначения можно в дерево запилить.

Pretorian
17.06.2016
08:21:14
Дерево то тут зачем?

Максим
17.06.2016
08:21:24
Для операторов. Им нагляднее будет.
«болт» и «гайка» что бы были в «крепёж».

Pretorian
17.06.2016
08:21:57
Не, забейте на операторов, я просто упростил
Мне интересна наработка данных на начальном этапе

Максим
17.06.2016
08:22:41
Дерево групп тоже вариант. Но одна запчасть может находиться в разных группах.

Pretorian
17.06.2016
08:23:11
Нет, ни каких групп, есть оригинал и у него аналоги
В 2 х группах не может находится

Максим
17.06.2016
08:23:31
Да, а мы глубже продумывать начали.. :)

Pretorian
17.06.2016
08:23:54
Не, не, ненадо глубже, тут примитив нужен

Максим
17.06.2016
08:24:22
Если с таким упрощением, то тут даже вариант заводишь оригинал, потом аналоги и указываешь «чего они аналоги» подойдёт.

Google

Pretorian
17.06.2016
08:24:27
Скажу так, ввел номер детали, тебе все аналоги дали

Andrey
17.06.2016
08:24:37
ладно, тогда начнем от противного, а чем плохо связать оригинал и его аналогои через has_many?

Максим
17.06.2016
08:24:46
То есть простейшее has_many/belongs_to

Pretorian
17.06.2016
08:24:51
Да подошло бы, но бывает и 2,3,4 оригинала )

Andrey
17.06.2016
08:25:41
т.е. анолог может быть в списке аналогов у разных оригинальных деталей?

Максим
17.06.2016
08:26:02
Значит так: заводишь абстрактную тип запчасти и в ней has_many запчасти. У них есть .original?

Pretorian
17.06.2016
08:26:06
Ага

Антон
17.06.2016
08:26:10
у одного аналога один оригинал, а одного оригниала много аналогов h_m/b_t?

Andrey
17.06.2016
08:26:39
ну как бы да

Pretorian
17.06.2016
08:26:43

Антон
17.06.2016
08:26:58
в каком месте?

Максим
17.06.2016
08:27:07
А как мой последний вариант?

Антон
17.06.2016
08:27:08
одно поле original_id

Pretorian
17.06.2016
08:27:12
24 гига занимает такая

Максим
17.06.2016
08:27:17

Антон
17.06.2016
08:27:36
одна таблица, parent_id

Максим
17.06.2016
08:27:43
Сложнее выборки.

Pretorian
17.06.2016
08:27:46
Про 2 таблицы понятно, но как понять что это та группа

Антон
17.06.2016
08:27:59

Pretorian
17.06.2016
08:28:17
Да забейте, хоть 10 таблиц, идею главное

Google

Pretorian
17.06.2016
08:28:51
1,2 и 2,3 как мне связать 1 и 3 если еще нет 2

Антон
17.06.2016
08:28:58

Andrey
17.06.2016
08:29:06
можно поглядеть в сторону json в бд, postgres поддерживает, у каждого аналога храним json строку со списком оригалов

Максим
17.06.2016
08:29:22
почему?
Померять надо. Но в MySQL когда последний раз мерял между двумя таблицами было быстрее чуть чем в одной с Parent. Ну и логика модели попроще.

Антон
17.06.2016
08:30:02

Максим
17.06.2016
08:30:19
Я же сказал, что чуть. :)

Pretorian
17.06.2016
08:30:24
Вот в большущей бд сделано так, у каждого оригинала свои аналоги даже если они оригиналы. У меня сделано что все аналоги с оригиналом имеют связь через один элемент

Антон
17.06.2016
08:30:47
элемент - вода?

Pretorian
17.06.2016
08:30:48
Но проблема в начальном наполнении
элемент - запись

Антон
17.06.2016
08:31:26
аналог - запись
оригинал - запись
элемент - запись

Pretorian
17.06.2016
08:31:50
Имя детали и к нему разные аналоги

Антон
17.06.2016
08:32:09
при чем тут аттрибут имя?

Максим
17.06.2016
08:32:16

mardybm
17.06.2016
08:32:40
по твоим словам аналог может одновременно быть еще и оригиналом?

Pretorian
17.06.2016
08:32:41
Имя детали означает просто деталь например руль

Антон
17.06.2016
08:32:53
имя детали - свойство объекта
у нас ООП а не ИОП

Google

Pretorian
17.06.2016
08:33:24
Свойство хранить для каждой детальки то накладно, текстовое

Максим
17.06.2016
08:33:28
Или близко к нему

Антон
17.06.2016
08:34:09
ну я не телепат, никто не декларировал что будем обсуждать AR в другой терминологии, в какой?

Pretorian
17.06.2016
08:34:17
Но ладно с этим наименованием, при вводе то как я пойму что именно это наименование, что бы привязаться, по этому и не катит

Антон
17.06.2016
08:34:35
нельзя привязывать объекты по свойству наименования

Максим
17.06.2016
08:34:43
У меня проблемы пока с терминологией AR. Потому и стараюсь писать операторами ))

Pretorian
17.06.2016
08:35:00
Да назовите хоть наименование хоть id хоть uuid

Антон
17.06.2016
08:35:15
id uuid хорошо индексируются

Pretorian
17.06.2016
08:35:29
Ага, только как понят что это он

Admin
ERROR: S client not available

Антон
17.06.2016
08:35:43
кто?

Максим
17.06.2016
08:36:23
Я за 2 таблицы. Тип детали has_many детали, которые различаются только .original? …

Антон
17.06.2016
08:36:56

Максим
17.06.2016
08:36:56
Вся иеархическая и информационная нагрузка больше на первой таблице с меньшим числом элементов.

Антон
17.06.2016
08:37:08

Pretorian
17.06.2016
08:37:13
Ладно, еще пример 12.4454.1 и 6.7df5.23 и dgfg3354.54_ - это разные детали-аналоги но означают одно, что их ставят в одно и то же место

Антон
17.06.2016
08:37:44
что значит разные детали-аналоги, что значит одно?
тоесть они аналоги?

Pretorian
17.06.2016
08:38:14
Скажем это руль и пофиг на все, какая разница из чего он сделан, клиенту пофиг

Антон
17.06.2016
08:38:42
12.4454.1(id: 1, original_id: nil)
6.7df5.23(id: 2, original_id: 1)

Google

Максим
17.06.2016
08:38:51
2 модели для одной сущности - плохо
Тут и три сущности предлагали уже. Если оригиналов и аналогов одной детали может быть несколько. То нельзя никакой оригинал выбрать как parent. Значит мы должны насильно выбрать parent вообще не из номенклатуры.

Pretorian
17.06.2016
08:38:51
Даже сделан один к одному и одним производителям но на разных заводах, уже разный номер

Антон
17.06.2016
08:39:26
через original_id

Pretorian
17.06.2016
08:39:46
А если я незнаю оригинала?
Опа, а я ведь ни как не могу незнать оригинала!

Максим
17.06.2016
08:40:06
Вот, говорю же что ещё сущность надо.

Pretorian
17.06.2016
08:40:30
А, блин, клево когда один оригинал, а если 2,3,4?

Антон
17.06.2016
08:40:56
а может быть 2,3,4 оригинала? что за бред

Максим
17.06.2016
08:41:03
Конечно может.

Pretorian
17.06.2016
08:41:08
Может

Антон
17.06.2016
08:41:09
например?

Максим
17.06.2016
08:41:19
Стекло для iPhone от двух производителей: Samsung и LG
И они оригинальные оба

Pretorian
17.06.2016
08:41:30
Скажем один производитель VOLVO но на разных заводах

Антон
17.06.2016
08:41:39
у них один P/N?

Максим
17.06.2016
08:41:52
Различается чуть.

Pretorian
17.06.2016
08:42:10
у деталей нет названий только Р/N

Антон
17.06.2016
08:42:42
тогда нужна служебная таблица analogs_originals

Pretorian
17.06.2016
08:43:01
Кросс это номер + производитель,
Тьфу, Кросс не равно деталь

Антон
17.06.2016
08:43:52
чот я устал
это тривиальная задача
она есть в скринкастах
она есть в документации по AR-relations