回答編集履歴
6
追記
test
CHANGED
@@ -18,34 +18,66 @@
|
|
18
18
|
|
19
19
|
<例>
|
20
20
|
|
21
|
+
|
22
|
+
|
23
|
+
製品
|
24
|
+
|
25
|
+
|ID |名称|
|
26
|
+
|
27
|
+
|:--|--:|
|
28
|
+
|
29
|
+
|1 |製品A
|
30
|
+
|
31
|
+
|2 |製品B
|
32
|
+
|
33
|
+
|3 |製品C
|
34
|
+
|
35
|
+
|
36
|
+
|
37
|
+
原料
|
38
|
+
|
39
|
+
|ID |名称|
|
40
|
+
|
41
|
+
|:--|--:|
|
42
|
+
|
43
|
+
|1 |原料n
|
44
|
+
|
45
|
+
|2 |原料z
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
構成
|
50
|
+
|
21
|
-
|ID |親ID|構成ID|
|
51
|
+
|ID |親ID|構成ID|製品ID|原料ID
|
22
52
|
|
23
53
|
|:--|:--:|:--:|--:|
|
24
54
|
|
25
|
-
|1 |0| |
|
55
|
+
|1 |0| ||1
|
26
56
|
|
27
|
-
|2 |0| |
|
57
|
+
|2 |0| ||2
|
28
58
|
|
29
|
-
|3 |0| |
|
59
|
+
|3 |0| |1|
|
30
60
|
|
31
|
-
|4 |3|1|
|
61
|
+
|4 |3|1|||
|
32
62
|
|
33
|
-
|5 |3|2|
|
63
|
+
|5 |3|2|||
|
34
64
|
|
35
|
-
|6 |0| |
|
65
|
+
|6 |0| |2|
|
36
66
|
|
37
|
-
|7 |6|3|
|
67
|
+
|7 |6|3|||
|
38
68
|
|
39
|
-
|8 |6|2|
|
69
|
+
|8 |6|2|||
|
40
70
|
|
41
|
-
|9 |0| |
|
71
|
+
|9 |0| |3|
|
42
72
|
|
43
|
-
|10 |9|6|
|
73
|
+
|10 |9|6|||
|
44
74
|
|
45
|
-
|11 |9|1|
|
75
|
+
|11 |9|1|||
|
46
76
|
|
47
77
|
|
48
78
|
|
49
79
|
下位ノードへの問い合わせは自己結合となり、`COALESCE(A.構成ID, A.ID)=B.親ID`とすることで、製品の展開が行える事となる。
|
50
80
|
|
51
81
|
※上記は構成を示すことを主としいて、実際には、原料や商品といったマスタを別に持ち、外部参照する方が良いと思います。
|
82
|
+
|
83
|
+
↑イメージ合わせました
|
5
追記
test
CHANGED
@@ -46,4 +46,6 @@
|
|
46
46
|
|
47
47
|
|
48
48
|
|
49
|
+
下位ノードへの問い合わせは自己結合となり、`COALESCE(A.構成ID, A.ID)=B.親ID`とすることで、製品の展開が行える事となる。
|
50
|
+
|
49
51
|
※上記は構成を示すことを主としいて、実際には、原料や商品といったマスタを別に持ち、外部参照する方が良いと思います。
|
4
追記
test
CHANGED
@@ -43,3 +43,7 @@
|
|
43
43
|
|10 |9|6|(製品B)
|
44
44
|
|
45
45
|
|11 |9|1|(原料n)
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
※上記は構成を示すことを主としいて、実際には、原料や商品といったマスタを別に持ち、外部参照する方が良いと思います。
|
3
修正
test
CHANGED
@@ -18,24 +18,28 @@
|
|
18
18
|
|
19
19
|
<例>
|
20
20
|
|
21
|
-
|ID
|
21
|
+
|ID |親ID|構成ID|名称|
|
22
22
|
|
23
23
|
|:--|:--:|:--:|--:|
|
24
24
|
|
25
|
-
|1
|
25
|
+
|1 |0| |原料n
|
26
26
|
|
27
|
-
|2
|
27
|
+
|2 |0| |原料z
|
28
28
|
|
29
|
-
|3
|
29
|
+
|3 |0| |製品A
|
30
30
|
|
31
|
-
|4
|
31
|
+
|4 |3|1|(原料n)
|
32
32
|
|
33
|
-
|5
|
33
|
+
|5 |3|2|(原料z)
|
34
34
|
|
35
|
-
|6
|
35
|
+
|6 |0| |製品B
|
36
36
|
|
37
|
-
|7
|
37
|
+
|7 |6|3|(製品A)
|
38
38
|
|
39
|
-
|8
|
39
|
+
|8 |6|2|(原料z)
|
40
40
|
|
41
|
+
|9 |0| |製品C
|
42
|
+
|
43
|
+
|10 |9|6|(製品B)
|
44
|
+
|
41
|
-
|9
|
45
|
+
|11 |9|1|(原料n)
|
2
追記
test
CHANGED
@@ -13,3 +13,29 @@
|
|
13
13
|
[SQLで木と階層構造のデータを扱う(1)―― 入れ子集合モデル](http://www.geocities.jp/mickindex/database/db_tree_ns.html)
|
14
14
|
|
15
15
|
[階層構造(入れ子集合モデル)について](https://qiita.com/reflet/items/a454b40b57de81598732)
|
16
|
+
|
17
|
+
|
18
|
+
|
19
|
+
<例>
|
20
|
+
|
21
|
+
|ID |親ID|名称|構成ID
|
22
|
+
|
23
|
+
|:--|:--:|:--:|--:|
|
24
|
+
|
25
|
+
|1 |0|製品A|
|
26
|
+
|
27
|
+
|2 |1|原料z|
|
28
|
+
|
29
|
+
|3 |1|原料n|
|
30
|
+
|
31
|
+
|4 |0|製品B|
|
32
|
+
|
33
|
+
|5 |4|製品A|1
|
34
|
+
|
35
|
+
|6 |4|原料z|
|
36
|
+
|
37
|
+
|7 |0|製品C|
|
38
|
+
|
39
|
+
|8 |7|製品B|4
|
40
|
+
|
41
|
+
|9 |7|原料n|
|
1
推敲
test
CHANGED
@@ -1,8 +1,8 @@
|
|
1
|
-
目的としては階層構造なので、ベタ打ち
|
1
|
+
目的としては階層構造なので、ベタ打ちしたくないのであれば、**経路列挙モデル**ではなく**入れ子集合モデル**ということになります。
|
2
2
|
|
3
3
|
|
4
4
|
|
5
|
-
MySQLが8.0なら再帰クエリーが使えますが、そうでないならSQLには手間や制約(階層の深さ)がか
|
5
|
+
MySQLが8.0なら再帰クエリーが使えますが、そうでないならSQLには手間や制約(階層の深さ)が掛かりますが実現できないわけではありません。
|
6
6
|
|
7
7
|
|
8
8
|
|