Создайте представление в SQLite3, в котором перечислены все уникальные пути в древовидной структуре базы данных. - PullRequest
0 голосов
/ 31 января 2019

Я использую SQLite3 (и python, но это не важно для вопроса, я не думаю), чтобы построить базу данных деталей в иерархической сборке с несколькими уровнями вложенности, где каждая деталь в сборке может иметь нескольковарианты.База данных может содержать записи из нескольких сборок, которые могут иметь различное количество элементов-элементов.У меня есть таблица с записью для каждой уникальной детали, в которой есть столбец для идентификатора детали, столбец для идентификатора сборки и столбец для идентификатора родительской детали в иерархии сборки (если есть).Кроме того, у меня есть вторая таблица, в которой перечислены уникальные варианты для всех деталей со столбцами для свойств детали и столбец для идентификационного номера детали сборки, для которой запись представляет собой вариант.

Мне бы хотелосьчтобы можно было составить список всех возможных уникальных вариантов сборки .Можно ли сделать это как представление в базе данных SQLite, и если да, то как бы я структурировал этот запрос?Или есть способ, которым я могу по-разному структурировать свою базу данных, чтобы упростить эту задачу?

РЕДАКТИРОВАТЬ:
Пример структуры:

Table: "PARTS"
PART_ID  PART_NAME   PARENT  ASSEMBLY
1        'Foo'       NULL    1
2        'Bar'       1       1
3        'Thing'     1       1
4        'Doodad'    1       1
5        'Bauble'    3       1
6        'Oof'       NULL    2
7        'Rab'       6       2
8        'Trinket'   6       2

Table: "VARIATIONS"
VAR_ID   PART_ID    PROPERTY_1   PROPERTY_2   PROPERTY_3
1        1          3.14159      0.63         0
2        1          3.24359      0.68         1
3        1          3            0.5          0.9999999
4        2          0.1          0.1          0.1
5        3          0.11         0.01         0.0005
6        3          0.11         0.01         0.0006
7        4          0.05         0.05         0.05
8        5          0.001        0.08         0.001
9        5          0.001        0.085        0.0011
10       6          5.5          1.0          3.2
11       7          1.1          0.99         1.2
12       8          0.05         0.05         0.05

Я хотел бы перечислить всевозможные комбинации вариантов деталей в сборке, которые выглядели бы так для деталей в сборке 1 из таблицы выше.Ниже приведены столбцы VAR_ID из таблицы VARIATIONS для соответствующих номеров деталей.

ROWNUM   PART1_VAR  PART2_VAR  PART3_VAR  PART4_VAR PART5_VAR
1        1          4          5          7         8
2        2          4          5          7         8
3        3          4          5          7         8
4        1          4          6          7         8
5        2          4          6          7         8
6        3          4          6          7         8
7        1          4          5          7         9
8        2          4          5          7         9
9        3          4          5          7         9
10       1          4          6          7         9
11       2          4          6          7         9
12       3          4          6          7         9
...