@soddong/agentic-domain-methodology 0.11.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.tbls.yml +64 -0
- package/CHANGELOG.md +97 -0
- package/README.md +501 -0
- package/dist/database.d.ts +8 -0
- package/dist/database.d.ts.map +1 -0
- package/dist/database.js +76 -0
- package/dist/database.js.map +1 -0
- package/dist/fixtures.d.ts +13 -0
- package/dist/fixtures.d.ts.map +1 -0
- package/dist/fixtures.js +413 -0
- package/dist/fixtures.js.map +1 -0
- package/dist/index.d.ts +31 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +19 -0
- package/dist/index.js.map +1 -0
- package/dist/repositories.d.ts +54 -0
- package/dist/repositories.d.ts.map +1 -0
- package/dist/repositories.js +652 -0
- package/dist/repositories.js.map +1 -0
- package/dist/seed-apply.d.ts +20 -0
- package/dist/seed-apply.d.ts.map +1 -0
- package/dist/seed-apply.js +728 -0
- package/dist/seed-apply.js.map +1 -0
- package/dist/service.d.ts +107 -0
- package/dist/service.d.ts.map +1 -0
- package/dist/service.js +225 -0
- package/dist/service.js.map +1 -0
- package/dist/types.d.ts +356 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +2 -0
- package/dist/types.js.map +1 -0
- package/dist/validators.d.ts +17 -0
- package/dist/validators.d.ts.map +1 -0
- package/dist/validators.js +297 -0
- package/dist/validators.js.map +1 -0
- package/docs/build.md +47 -0
- package/docs/configuration.md +33 -0
- package/docs/delivery.md +52 -0
- package/docs/operations.md +55 -0
- package/docs/publishing.md +84 -0
- package/docs/schema/generated/README.md +39 -0
- package/docs/schema/generated/methodology_activities.md +121 -0
- package/docs/schema/generated/methodology_activities.svg +143 -0
- package/docs/schema/generated/methodology_activity_artifact_requirements.md +129 -0
- package/docs/schema/generated/methodology_activity_artifact_requirements.svg +52 -0
- package/docs/schema/generated/methodology_activity_criteria.md +112 -0
- package/docs/schema/generated/methodology_activity_criteria.svg +52 -0
- package/docs/schema/generated/methodology_baseline_requirements.md +103 -0
- package/docs/schema/generated/methodology_baseline_requirements.svg +27 -0
- package/docs/schema/generated/methodology_code_groups.md +70 -0
- package/docs/schema/generated/methodology_code_groups.svg +49 -0
- package/docs/schema/generated/methodology_codes.md +88 -0
- package/docs/schema/generated/methodology_codes.svg +49 -0
- package/docs/schema/generated/methodology_common_blueprint_policies.md +104 -0
- package/docs/schema/generated/methodology_common_blueprint_policies.svg +72 -0
- package/docs/schema/generated/methodology_common_blueprint_policy_nodes.md +118 -0
- package/docs/schema/generated/methodology_common_blueprint_policy_nodes.svg +59 -0
- package/docs/schema/generated/methodology_handoff_requirements.md +130 -0
- package/docs/schema/generated/methodology_handoff_requirements.svg +27 -0
- package/docs/schema/generated/methodology_lifecycles.md +105 -0
- package/docs/schema/generated/methodology_lifecycles.svg +71 -0
- package/docs/schema/generated/methodology_methodologies.md +92 -0
- package/docs/schema/generated/methodology_methodologies.svg +92 -0
- package/docs/schema/generated/methodology_phase_processes.md +106 -0
- package/docs/schema/generated/methodology_phase_processes.svg +77 -0
- package/docs/schema/generated/methodology_phases.md +107 -0
- package/docs/schema/generated/methodology_phases.svg +77 -0
- package/docs/schema/generated/methodology_processes.md +98 -0
- package/docs/schema/generated/methodology_processes.svg +118 -0
- package/docs/schema/generated/methodology_schema_migrations.md +52 -0
- package/docs/schema/generated/methodology_schema_migrations.svg +27 -0
- package/docs/schema/generated/methodology_stage_activities.md +106 -0
- package/docs/schema/generated/methodology_stage_activities.svg +77 -0
- package/docs/schema/generated/methodology_stage_artifact_requirements.md +109 -0
- package/docs/schema/generated/methodology_stage_artifact_requirements.svg +52 -0
- package/docs/schema/generated/methodology_stage_criteria.md +112 -0
- package/docs/schema/generated/methodology_stage_criteria.svg +52 -0
- package/docs/schema/generated/methodology_stages.md +117 -0
- package/docs/schema/generated/methodology_stages.svg +121 -0
- package/docs/schema/generated/methodology_steps.md +105 -0
- package/docs/schema/generated/methodology_steps.svg +52 -0
- package/docs/schema/generated/methodology_trace_policies.md +121 -0
- package/docs/schema/generated/methodology_trace_policies.svg +27 -0
- package/docs/schema/generated/schema.json +4253 -0
- package/docs/schema/generated/schema.mmd +296 -0
- package/docs/schema/generated/schema.svg +446 -0
- package/docs/schema/migrations.md +24 -0
- package/docs/usage.md +39 -0
- package/package.json +29 -0
- package/src/database/migrations/0001_methodology_base.sql +1190 -0
|
@@ -0,0 +1,121 @@
|
|
|
1
|
+
# methodology_activities
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
process 내부의 기본 수행 활동을 관리한다.
|
|
6
|
+
|
|
7
|
+
<details>
|
|
8
|
+
<summary><strong>Table Definition</strong></summary>
|
|
9
|
+
|
|
10
|
+
```sql
|
|
11
|
+
CREATE TABLE methodology_activities (
|
|
12
|
+
-- activity 식별자
|
|
13
|
+
activity_id CHAR(36) PRIMARY KEY
|
|
14
|
+
CHECK (length(activity_id) = 36),
|
|
15
|
+
|
|
16
|
+
-- 소속 process 식별자
|
|
17
|
+
process_id CHAR(36) NOT NULL
|
|
18
|
+
CHECK (length(process_id) = 36),
|
|
19
|
+
|
|
20
|
+
-- activity 코드
|
|
21
|
+
activity_code VARCHAR(128) NOT NULL,
|
|
22
|
+
|
|
23
|
+
-- activity 이름
|
|
24
|
+
activity_name VARCHAR(256) NOT NULL,
|
|
25
|
+
|
|
26
|
+
-- activity 목적
|
|
27
|
+
activity_purpose TEXT,
|
|
28
|
+
|
|
29
|
+
-- activity 유형 코드
|
|
30
|
+
activity_type_code VARCHAR(64) NOT NULL DEFAULT 'default',
|
|
31
|
+
|
|
32
|
+
-- 책임 role 코드
|
|
33
|
+
responsible_role_code VARCHAR(64),
|
|
34
|
+
|
|
35
|
+
-- process 내 activity 순서
|
|
36
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
37
|
+
|
|
38
|
+
-- 필수 수행 여부
|
|
39
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
40
|
+
CHECK (is_required IN (0, 1)),
|
|
41
|
+
|
|
42
|
+
-- tailoring 허용 여부
|
|
43
|
+
tailoring_allowed INTEGER NOT NULL DEFAULT 0
|
|
44
|
+
CHECK (tailoring_allowed IN (0, 1)),
|
|
45
|
+
|
|
46
|
+
-- 활성 여부
|
|
47
|
+
is_active INTEGER NOT NULL DEFAULT 1
|
|
48
|
+
CHECK (is_active IN (0, 1)),
|
|
49
|
+
|
|
50
|
+
-- 생성 시각
|
|
51
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
52
|
+
|
|
53
|
+
-- 수정 시각
|
|
54
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
55
|
+
|
|
56
|
+
-- 확장 메타데이터
|
|
57
|
+
metadata_json JSON
|
|
58
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
59
|
+
|
|
60
|
+
FOREIGN KEY (process_id)
|
|
61
|
+
REFERENCES methodology_processes (process_id)
|
|
62
|
+
ON DELETE CASCADE,
|
|
63
|
+
|
|
64
|
+
UNIQUE (process_id, activity_code),
|
|
65
|
+
UNIQUE (process_id, sort_order)
|
|
66
|
+
)
|
|
67
|
+
```
|
|
68
|
+
|
|
69
|
+
</details>
|
|
70
|
+
|
|
71
|
+
## Columns
|
|
72
|
+
|
|
73
|
+
| Name | Type | Default | Nullable | Children | Parents |
|
|
74
|
+
| --------------------- | ------------ | ----------------- | -------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------- |
|
|
75
|
+
| activity_id | CHAR(36) | | true | [methodology_steps](methodology_steps.md) [methodology_stage_activities](methodology_stage_activities.md) [methodology_activity_artifact_requirements](methodology_activity_artifact_requirements.md) [methodology_activity_criteria](methodology_activity_criteria.md) | |
|
|
76
|
+
| process_id | CHAR(36) | | false | | [methodology_processes](methodology_processes.md) |
|
|
77
|
+
| activity_code | VARCHAR(128) | | false | | |
|
|
78
|
+
| activity_name | VARCHAR(256) | | false | | |
|
|
79
|
+
| activity_purpose | TEXT | | true | | |
|
|
80
|
+
| activity_type_code | VARCHAR(64) | 'default' | false | | |
|
|
81
|
+
| responsible_role_code | VARCHAR(64) | | true | | |
|
|
82
|
+
| sort_order | INTEGER | 0 | false | | |
|
|
83
|
+
| is_required | INTEGER | 1 | false | | |
|
|
84
|
+
| tailoring_allowed | INTEGER | 0 | false | | |
|
|
85
|
+
| is_active | INTEGER | 1 | false | | |
|
|
86
|
+
| created_at | DATETIME | CURRENT_TIMESTAMP | false | | |
|
|
87
|
+
| updated_at | DATETIME | CURRENT_TIMESTAMP | false | | |
|
|
88
|
+
| metadata_json | JSON | | true | | |
|
|
89
|
+
|
|
90
|
+
## Constraints
|
|
91
|
+
|
|
92
|
+
| Name | Type | Definition |
|
|
93
|
+
| ----------------------------------------- | ----------- | ----------------------------------------------------------------------------------------------------------------------- |
|
|
94
|
+
| activity_id | PRIMARY KEY | PRIMARY KEY (activity_id) |
|
|
95
|
+
| - (Foreign key ID: 0) | FOREIGN KEY | FOREIGN KEY (process_id) REFERENCES methodology_processes (process_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE |
|
|
96
|
+
| sqlite_autoindex_methodology_activities_3 | UNIQUE | UNIQUE (process_id, sort_order) |
|
|
97
|
+
| sqlite_autoindex_methodology_activities_2 | UNIQUE | UNIQUE (process_id, activity_code) |
|
|
98
|
+
| sqlite_autoindex_methodology_activities_1 | PRIMARY KEY | PRIMARY KEY (activity_id) |
|
|
99
|
+
| - | CHECK | CHECK (length(activity_id) = 36) |
|
|
100
|
+
| - | CHECK | CHECK (length(process_id) = 36) |
|
|
101
|
+
| - | CHECK | CHECK (is_required IN (0, 1)) |
|
|
102
|
+
| - | CHECK | CHECK (tailoring_allowed IN (0, 1)) |
|
|
103
|
+
| - | CHECK | CHECK (is_active IN (0, 1)) |
|
|
104
|
+
| - | CHECK | CHECK (metadata_json IS NULL OR json_valid(metadata_json)) |
|
|
105
|
+
|
|
106
|
+
## Indexes
|
|
107
|
+
|
|
108
|
+
| Name | Definition |
|
|
109
|
+
| ----------------------------------------- | --------------------------------------------------------------------------------------------------------------- |
|
|
110
|
+
| idx_methodology_activities_process_order | CREATE INDEX idx_methodology_activities_process_order<br /> ON methodology_activities (process_id, sort_order) |
|
|
111
|
+
| sqlite_autoindex_methodology_activities_3 | UNIQUE (process_id, sort_order) |
|
|
112
|
+
| sqlite_autoindex_methodology_activities_2 | UNIQUE (process_id, activity_code) |
|
|
113
|
+
| sqlite_autoindex_methodology_activities_1 | PRIMARY KEY (activity_id) |
|
|
114
|
+
|
|
115
|
+
## Relations
|
|
116
|
+
|
|
117
|
+

|
|
118
|
+
|
|
119
|
+
---
|
|
120
|
+
|
|
121
|
+
> Generated by [tbls](https://github.com/k1LoW/tbls)
|
|
@@ -0,0 +1,143 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
+
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
|
|
5
|
+
-->
|
|
6
|
+
<!-- Title: methodology_activities Pages: 1 -->
|
|
7
|
+
<svg width="1635pt" height="699pt"
|
|
8
|
+
viewBox="0.00 0.00 1634.62 698.80" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 694.8)">
|
|
10
|
+
<title>methodology_activities</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-694.8 1630.62,-694.8 1630.62,4 -4,4"/>
|
|
12
|
+
<!-- methodology_activities -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>methodology_activities</title>
|
|
15
|
+
<polygon fill="#efefef" stroke="none" points="621.71,-337.8 621.71,-383.8 873.94,-383.8 873.94,-337.8 621.71,-337.8"/>
|
|
16
|
+
<polygon fill="none" stroke="black" points="621.71,-337.8 621.71,-383.8 873.94,-383.8 873.94,-337.8 621.71,-337.8"/>
|
|
17
|
+
<text text-anchor="start" x="628.71" y="-361.6" font-family="Arial Bold" font-size="18.00">methodology_activities</text>
|
|
18
|
+
<text text-anchor="start" x="797.68" y="-361.6" font-family="Arial" font-size="14.00"> </text>
|
|
19
|
+
<text text-anchor="start" x="828.8" y="-361.6" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
20
|
+
<text text-anchor="start" x="629.96" y="-347.2" font-family="Arial" font-size="14.00" fill="#333333">process 내부의 기본 수행 활동을 관리한다.</text>
|
|
21
|
+
<polygon fill="none" stroke="black" points="621.71,-307 621.71,-337.8 873.94,-337.8 873.94,-307 621.71,-307"/>
|
|
22
|
+
<text text-anchor="start" x="628.71" y="-319.2" font-family="Arial" font-size="14.00">activity_id </text>
|
|
23
|
+
<text text-anchor="start" x="694.07" y="-319.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
24
|
+
<polygon fill="none" stroke="black" points="621.71,-276.2 621.71,-307 873.94,-307 873.94,-276.2 621.71,-276.2"/>
|
|
25
|
+
<text text-anchor="start" x="628.71" y="-288.4" font-family="Arial" font-size="14.00">process_id </text>
|
|
26
|
+
<text text-anchor="start" x="700.3" y="-288.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
27
|
+
<polygon fill="none" stroke="black" stroke-width="3" points="620.21,-274.7 620.21,-385.3 875.44,-385.3 875.44,-274.7 620.21,-274.7"/>
|
|
28
|
+
</g>
|
|
29
|
+
<!-- methodology_processes -->
|
|
30
|
+
<g id="node6" class="node">
|
|
31
|
+
<title>methodology_processes</title>
|
|
32
|
+
<polygon fill="#efefef" stroke="none" points="619.71,-104.8 619.71,-150.8 875.94,-150.8 875.94,-104.8 619.71,-104.8"/>
|
|
33
|
+
<polygon fill="none" stroke="black" points="619.71,-104.8 619.71,-150.8 875.94,-150.8 875.94,-104.8 619.71,-104.8"/>
|
|
34
|
+
<text text-anchor="start" x="626.71" y="-128.6" font-family="Arial Bold" font-size="18.00">methodology_processes</text>
|
|
35
|
+
<text text-anchor="start" x="799.68" y="-128.6" font-family="Arial" font-size="14.00"> </text>
|
|
36
|
+
<text text-anchor="start" x="830.8" y="-128.6" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
37
|
+
<text text-anchor="start" x="650.58" y="-114.2" font-family="Arial" font-size="14.00" fill="#333333">재사용 가능한 수행 절차를 관리한다.</text>
|
|
38
|
+
<polygon fill="none" stroke="black" points="619.71,-74 619.71,-104.8 875.94,-104.8 875.94,-74 619.71,-74"/>
|
|
39
|
+
<text text-anchor="start" x="626.71" y="-86.2" font-family="Arial" font-size="14.00">process_id </text>
|
|
40
|
+
<text text-anchor="start" x="698.3" y="-86.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
41
|
+
<polygon fill="none" stroke="black" points="619.71,-43.2 619.71,-74 875.94,-74 875.94,-43.2 619.71,-43.2"/>
|
|
42
|
+
<text text-anchor="start" x="626.71" y="-55.4" font-family="Arial" font-size="14.00">methodology_id </text>
|
|
43
|
+
<text text-anchor="start" x="729.45" y="-55.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
44
|
+
</g>
|
|
45
|
+
<!-- methodology_activities->methodology_processes -->
|
|
46
|
+
<g id="edge5" class="edge">
|
|
47
|
+
<title>methodology_activities:process_id->methodology_processes:process_id</title>
|
|
48
|
+
<path fill="none" stroke="black" d="M748.65,-265.11C758.06,-212.41 844.95,-249.69 875.94,-194 898.54,-153.37 923.43,-89.4 876.94,-89.4"/>
|
|
49
|
+
<polygon fill="black" stroke="black" points="748.67,-264.9 743.37,-274.5 748.23,-270.22 747.88,-274.53 747.88,-274.53 747.88,-274.53 748.23,-270.22 752.34,-275.24 748.67,-264.9"/>
|
|
50
|
+
</g>
|
|
51
|
+
<!-- methodology_steps -->
|
|
52
|
+
<g id="node2" class="node">
|
|
53
|
+
<title>methodology_steps</title>
|
|
54
|
+
<polygon fill="#efefef" stroke="none" points="43.2,-586.2 43.2,-632.2 266.45,-632.2 266.45,-586.2 43.2,-586.2"/>
|
|
55
|
+
<polygon fill="none" stroke="black" points="43.2,-586.2 43.2,-632.2 266.45,-632.2 266.45,-586.2 43.2,-586.2"/>
|
|
56
|
+
<text text-anchor="start" x="50.2" y="-610" font-family="Arial Bold" font-size="18.00">methodology_steps</text>
|
|
57
|
+
<text text-anchor="start" x="190.19" y="-610" font-family="Arial" font-size="14.00"> </text>
|
|
58
|
+
<text text-anchor="start" x="221.31" y="-610" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
59
|
+
<text text-anchor="start" x="59.53" y="-595.6" font-family="Arial" font-size="14.00" fill="#333333">activity 하위 순차 절차를 관리한다.</text>
|
|
60
|
+
<polygon fill="none" stroke="black" points="43.2,-555.4 43.2,-586.2 266.45,-586.2 266.45,-555.4 43.2,-555.4"/>
|
|
61
|
+
<text text-anchor="start" x="50.2" y="-567.6" font-family="Arial" font-size="14.00">step_id </text>
|
|
62
|
+
<text text-anchor="start" x="99.23" y="-567.6" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
63
|
+
<polygon fill="none" stroke="black" points="43.2,-524.6 43.2,-555.4 266.45,-555.4 266.45,-524.6 43.2,-524.6"/>
|
|
64
|
+
<text text-anchor="start" x="50.2" y="-536.8" font-family="Arial" font-size="14.00">activity_id </text>
|
|
65
|
+
<text text-anchor="start" x="115.56" y="-536.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
66
|
+
</g>
|
|
67
|
+
<!-- methodology_steps->methodology_activities -->
|
|
68
|
+
<g id="edge1" class="edge">
|
|
69
|
+
<title>methodology_steps:activity_id->methodology_activities:activity_id</title>
|
|
70
|
+
<path fill="none" stroke="black" d="M277.58,-538.69C304.21,-530.82 291.28,-489.38 318.82,-466 432.08,-369.83 472.13,-322.4 620.71,-322.4"/>
|
|
71
|
+
<polygon fill="black" stroke="black" points="277.7,-538.68 267.2,-535.49 272.41,-539.36 268.11,-539.91 268.11,-539.91 268.11,-539.91 272.41,-539.36 268.36,-544.42 277.7,-538.68"/>
|
|
72
|
+
</g>
|
|
73
|
+
<!-- methodology_stage_activities -->
|
|
74
|
+
<g id="node3" class="node">
|
|
75
|
+
<title>methodology_stage_activities</title>
|
|
76
|
+
<polygon fill="#efefef" stroke="none" points="370.72,-601.6 370.72,-647.6 668.93,-647.6 668.93,-601.6 370.72,-601.6"/>
|
|
77
|
+
<polygon fill="none" stroke="black" points="370.72,-601.6 370.72,-647.6 668.93,-647.6 668.93,-601.6 370.72,-601.6"/>
|
|
78
|
+
<text text-anchor="start" x="377.72" y="-625.4" font-family="Arial Bold" font-size="18.00">methodology_stage_activities</text>
|
|
79
|
+
<text text-anchor="start" x="592.67" y="-625.4" font-family="Arial" font-size="14.00"> </text>
|
|
80
|
+
<text text-anchor="start" x="623.79" y="-625.4" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
81
|
+
<text text-anchor="start" x="407.4" y="-611" font-family="Arial" font-size="14.00" fill="#333333">stage와 activity의 포함 관계를 관리한다.</text>
|
|
82
|
+
<polygon fill="none" stroke="black" points="370.72,-570.8 370.72,-601.6 668.93,-601.6 668.93,-570.8 370.72,-570.8"/>
|
|
83
|
+
<text text-anchor="start" x="377.72" y="-583" font-family="Arial" font-size="14.00">stage_activity_id </text>
|
|
84
|
+
<text text-anchor="start" x="485.11" y="-583" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
85
|
+
<polygon fill="none" stroke="black" points="370.72,-540 370.72,-570.8 668.93,-570.8 668.93,-540 370.72,-540"/>
|
|
86
|
+
<text text-anchor="start" x="377.72" y="-552.2" font-family="Arial" font-size="14.00">stage_id </text>
|
|
87
|
+
<text text-anchor="start" x="434.54" y="-552.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
88
|
+
<polygon fill="none" stroke="black" points="370.72,-509.2 370.72,-540 668.93,-540 668.93,-509.2 370.72,-509.2"/>
|
|
89
|
+
<text text-anchor="start" x="377.72" y="-521.4" font-family="Arial" font-size="14.00">activity_id </text>
|
|
90
|
+
<text text-anchor="start" x="443.08" y="-521.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
91
|
+
</g>
|
|
92
|
+
<!-- methodology_stage_activities->methodology_activities -->
|
|
93
|
+
<g id="edge2" class="edge">
|
|
94
|
+
<title>methodology_stage_activities:activity_id->methodology_activities:activity_id</title>
|
|
95
|
+
<path fill="none" stroke="black" d="M679.92,-521.71C690.82,-512.8 678.66,-485.25 668.93,-466 657.02,-442.45 633.53,-453.59 621.71,-430 600.29,-387.24 572.89,-322.4 620.71,-322.4"/>
|
|
96
|
+
<polygon fill="black" stroke="black" points="679.86,-521.73 669,-520.18 674.73,-523.21 670.57,-524.41 670.57,-524.41 670.57,-524.41 674.73,-523.21 671.5,-528.83 679.86,-521.73"/>
|
|
97
|
+
</g>
|
|
98
|
+
<!-- methodology_activity_artifact_requirements -->
|
|
99
|
+
<g id="node4" class="node">
|
|
100
|
+
<title>methodology_activity_artifact_requirements</title>
|
|
101
|
+
<polygon fill="#efefef" stroke="none" points="773.75,-586.2 773.75,-632.2 1177.9,-632.2 1177.9,-586.2 773.75,-586.2"/>
|
|
102
|
+
<polygon fill="none" stroke="black" points="773.75,-586.2 773.75,-632.2 1177.9,-632.2 1177.9,-586.2 773.75,-586.2"/>
|
|
103
|
+
<text text-anchor="start" x="780.75" y="-610" font-family="Arial Bold" font-size="18.00">methodology_activity_artifact_requirements</text>
|
|
104
|
+
<text text-anchor="start" x="1101.64" y="-610" font-family="Arial" font-size="14.00"> </text>
|
|
105
|
+
<text text-anchor="start" x="1132.76" y="-610" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
106
|
+
<text text-anchor="start" x="809.31" y="-595.6" font-family="Arial" font-size="14.00" fill="#333333">activity의 input/output/supporting 산출물 요구를 관리한다.</text>
|
|
107
|
+
<polygon fill="none" stroke="black" points="773.75,-555.4 773.75,-586.2 1177.9,-586.2 1177.9,-555.4 773.75,-555.4"/>
|
|
108
|
+
<text text-anchor="start" x="780.75" y="-567.6" font-family="Arial" font-size="14.00">activity_artifact_requirement_id </text>
|
|
109
|
+
<text text-anchor="start" x="978.39" y="-567.6" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
110
|
+
<polygon fill="none" stroke="black" points="773.75,-524.6 773.75,-555.4 1177.9,-555.4 1177.9,-524.6 773.75,-524.6"/>
|
|
111
|
+
<text text-anchor="start" x="780.75" y="-536.8" font-family="Arial" font-size="14.00">activity_id </text>
|
|
112
|
+
<text text-anchor="start" x="846.11" y="-536.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
113
|
+
</g>
|
|
114
|
+
<!-- methodology_activity_artifact_requirements->methodology_activities -->
|
|
115
|
+
<g id="edge3" class="edge">
|
|
116
|
+
<title>methodology_activity_artifact_requirements:activity_id->methodology_activities:activity_id</title>
|
|
117
|
+
<path fill="none" stroke="black" d="M762.93,-537.28C751.07,-528.41 762.24,-499.88 773.75,-481.4 800.2,-438.92 847.65,-472.59 873.94,-430 899.06,-389.3 922.76,-322.4 874.94,-322.4"/>
|
|
118
|
+
<polygon fill="black" stroke="black" points="762.79,-537.24 771.22,-544.25 767.93,-538.66 772.1,-539.82 772.1,-539.82 772.1,-539.82 767.93,-538.66 773.63,-535.57 762.79,-537.24"/>
|
|
119
|
+
</g>
|
|
120
|
+
<!-- methodology_activity_criteria -->
|
|
121
|
+
<g id="node5" class="node">
|
|
122
|
+
<title>methodology_activity_criteria</title>
|
|
123
|
+
<polygon fill="#efefef" stroke="none" points="1282.23,-586.2 1282.23,-632.2 1583.42,-632.2 1583.42,-586.2 1282.23,-586.2"/>
|
|
124
|
+
<polygon fill="none" stroke="black" points="1282.23,-586.2 1282.23,-632.2 1583.42,-632.2 1583.42,-586.2 1282.23,-586.2"/>
|
|
125
|
+
<text text-anchor="start" x="1289.23" y="-610" font-family="Arial Bold" font-size="18.00">methodology_activity_criteria</text>
|
|
126
|
+
<text text-anchor="start" x="1507.16" y="-610" font-family="Arial" font-size="14.00"> </text>
|
|
127
|
+
<text text-anchor="start" x="1538.28" y="-610" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
128
|
+
<text text-anchor="start" x="1309.51" y="-595.6" font-family="Arial" font-size="14.00" fill="#333333">activity의 completion 판단 기준을 관리한다.</text>
|
|
129
|
+
<polygon fill="none" stroke="black" points="1282.23,-555.4 1282.23,-586.2 1583.42,-586.2 1583.42,-555.4 1282.23,-555.4"/>
|
|
130
|
+
<text text-anchor="start" x="1289.23" y="-567.6" font-family="Arial" font-size="14.00">activity_criteria_id </text>
|
|
131
|
+
<text text-anchor="start" x="1404.38" y="-567.6" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
132
|
+
<polygon fill="none" stroke="black" points="1282.23,-524.6 1282.23,-555.4 1583.42,-555.4 1583.42,-524.6 1282.23,-524.6"/>
|
|
133
|
+
<text text-anchor="start" x="1289.23" y="-536.8" font-family="Arial" font-size="14.00">activity_id </text>
|
|
134
|
+
<text text-anchor="start" x="1354.59" y="-536.8" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
135
|
+
</g>
|
|
136
|
+
<!-- methodology_activity_criteria->methodology_activities -->
|
|
137
|
+
<g id="edge4" class="edge">
|
|
138
|
+
<title>methodology_activity_criteria:activity_id->methodology_activities:activity_id</title>
|
|
139
|
+
<path fill="none" stroke="black" d="M1271.11,-538.67C1244.59,-530.66 1258.06,-488.55 1229.82,-466 1096.89,-359.8 1045.09,-322.4 874.94,-322.4"/>
|
|
140
|
+
<polygon fill="black" stroke="black" points="1270.98,-538.65 1280.31,-544.42 1276.27,-539.35 1280.57,-539.91 1280.57,-539.91 1280.57,-539.91 1276.27,-539.35 1281.49,-535.49 1270.98,-538.65"/>
|
|
141
|
+
</g>
|
|
142
|
+
</g>
|
|
143
|
+
</svg>
|
|
@@ -0,0 +1,129 @@
|
|
|
1
|
+
# methodology_activity_artifact_requirements
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
activity의 input/output/supporting 산출물 요구를 관리한다.
|
|
6
|
+
|
|
7
|
+
<details>
|
|
8
|
+
<summary><strong>Table Definition</strong></summary>
|
|
9
|
+
|
|
10
|
+
```sql
|
|
11
|
+
CREATE TABLE methodology_activity_artifact_requirements (
|
|
12
|
+
-- activity artifact requirement 식별자
|
|
13
|
+
activity_artifact_requirement_id CHAR(36) PRIMARY KEY
|
|
14
|
+
CHECK (length(activity_artifact_requirement_id) = 36),
|
|
15
|
+
|
|
16
|
+
-- 소속 activity 식별자
|
|
17
|
+
activity_id CHAR(36) NOT NULL
|
|
18
|
+
CHECK (length(activity_id) = 36),
|
|
19
|
+
|
|
20
|
+
-- artifact standard 코드
|
|
21
|
+
artifact_standard_code VARCHAR(128) NOT NULL,
|
|
22
|
+
|
|
23
|
+
-- artifact standard 버전
|
|
24
|
+
artifact_standard_version VARCHAR(64) NOT NULL,
|
|
25
|
+
|
|
26
|
+
-- artifact-standard가 정의한 document component 코드. 산출물 전체가 아니라 특정 본문/부록 구성 단위를 대상으로 할 때 사용한다.
|
|
27
|
+
artifact_component_code VARCHAR(128),
|
|
28
|
+
|
|
29
|
+
-- artifact-standard document component 역할 코드. 예: MAIN, APPENDIX
|
|
30
|
+
artifact_component_role_code VARCHAR(64),
|
|
31
|
+
|
|
32
|
+
-- 산출물 요구 역할 코드
|
|
33
|
+
requirement_role_code VARCHAR(32) NOT NULL
|
|
34
|
+
CHECK (requirement_role_code IN ('input', 'output', 'supporting')),
|
|
35
|
+
|
|
36
|
+
-- output activity가 산출물을 어떻게 다루는지 나타내는 사용 코드
|
|
37
|
+
output_usage_code VARCHAR(32)
|
|
38
|
+
CHECK (output_usage_code IS NULL OR output_usage_code IN ('produces', 'refines', 'reviews', 'consolidates')),
|
|
39
|
+
|
|
40
|
+
-- activity 대표 output 여부
|
|
41
|
+
is_primary INTEGER NOT NULL DEFAULT 0
|
|
42
|
+
CHECK (is_primary IN (0, 1)),
|
|
43
|
+
|
|
44
|
+
-- 필수 여부
|
|
45
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
46
|
+
CHECK (is_required IN (0, 1)),
|
|
47
|
+
|
|
48
|
+
-- validation 필수 여부
|
|
49
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
50
|
+
CHECK (validation_required IN (0, 1)),
|
|
51
|
+
|
|
52
|
+
-- activity 내 정렬 순서
|
|
53
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
54
|
+
|
|
55
|
+
-- 생성 시각
|
|
56
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
57
|
+
|
|
58
|
+
-- 수정 시각
|
|
59
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
60
|
+
|
|
61
|
+
-- 확장 메타데이터
|
|
62
|
+
metadata_json JSON
|
|
63
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
64
|
+
|
|
65
|
+
FOREIGN KEY (activity_id)
|
|
66
|
+
REFERENCES methodology_activities (activity_id)
|
|
67
|
+
ON DELETE CASCADE,
|
|
68
|
+
|
|
69
|
+
UNIQUE (activity_id, sort_order)
|
|
70
|
+
)
|
|
71
|
+
```
|
|
72
|
+
|
|
73
|
+
</details>
|
|
74
|
+
|
|
75
|
+
## Columns
|
|
76
|
+
|
|
77
|
+
| Name | Type | Default | Nullable | Parents |
|
|
78
|
+
| -------------------------------- | ------------ | ----------------- | -------- | --------------------------------------------------- |
|
|
79
|
+
| activity_artifact_requirement_id | CHAR(36) | | true | |
|
|
80
|
+
| activity_id | CHAR(36) | | false | [methodology_activities](methodology_activities.md) |
|
|
81
|
+
| artifact_standard_code | VARCHAR(128) | | false | |
|
|
82
|
+
| artifact_standard_version | VARCHAR(64) | | false | |
|
|
83
|
+
| artifact_component_code | VARCHAR(128) | | true | |
|
|
84
|
+
| artifact_component_role_code | VARCHAR(64) | | true | |
|
|
85
|
+
| requirement_role_code | VARCHAR(32) | | false | |
|
|
86
|
+
| output_usage_code | VARCHAR(32) | | true | |
|
|
87
|
+
| is_primary | INTEGER | 0 | false | |
|
|
88
|
+
| is_required | INTEGER | 1 | false | |
|
|
89
|
+
| validation_required | INTEGER | 0 | false | |
|
|
90
|
+
| sort_order | INTEGER | 0 | false | |
|
|
91
|
+
| created_at | DATETIME | CURRENT_TIMESTAMP | false | |
|
|
92
|
+
| updated_at | DATETIME | CURRENT_TIMESTAMP | false | |
|
|
93
|
+
| metadata_json | JSON | | true | |
|
|
94
|
+
|
|
95
|
+
## Constraints
|
|
96
|
+
|
|
97
|
+
| Name | Type | Definition |
|
|
98
|
+
| ------------------------------------------------------------- | ----------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
99
|
+
| activity_artifact_requirement_id | PRIMARY KEY | PRIMARY KEY (activity_artifact_requirement_id) |
|
|
100
|
+
| - (Foreign key ID: 0) | FOREIGN KEY | FOREIGN KEY (activity_id) REFERENCES methodology_activities (activity_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE |
|
|
101
|
+
| sqlite_autoindex_methodology_activity_artifact_requirements_2 | UNIQUE | UNIQUE (activity_id, sort_order) |
|
|
102
|
+
| sqlite_autoindex_methodology_activity_artifact_requirements_1 | PRIMARY KEY | PRIMARY KEY (activity_artifact_requirement_id) |
|
|
103
|
+
| - | CHECK | CHECK (length(activity_artifact_requirement_id) = 36) |
|
|
104
|
+
| - | CHECK | CHECK (length(activity_id) = 36) |
|
|
105
|
+
| - | CHECK | CHECK (requirement_role_code IN ('input', 'output', 'supporting')) |
|
|
106
|
+
| - | CHECK | CHECK (output_usage_code IS NULL OR output_usage_code IN ('produces', 'refines', 'reviews', 'consolidates')) |
|
|
107
|
+
| - | CHECK | CHECK (is_primary IN (0, 1)) |
|
|
108
|
+
| - | CHECK | CHECK (is_required IN (0, 1)) |
|
|
109
|
+
| - | CHECK | CHECK (validation_required IN (0, 1)) |
|
|
110
|
+
| - | CHECK | CHECK (metadata_json IS NULL OR json_valid(metadata_json)) |
|
|
111
|
+
|
|
112
|
+
## Indexes
|
|
113
|
+
|
|
114
|
+
| Name | Definition |
|
|
115
|
+
| ------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
116
|
+
| ux_methodology_activity_artifact_requirements_unique_target | CREATE UNIQUE INDEX ux_methodology_activity_artifact_requirements_unique_target<br /> ON methodology_activity_artifact_requirements (<br /> activity_id,<br /> artifact_standard_code,<br /> artifact_standard_version,<br /> requirement_role_code,<br /> COALESCE(artifact_component_code, '')<br /> ) |
|
|
117
|
+
| idx_methodology_activity_artifact_requirements_component | CREATE INDEX idx_methodology_activity_artifact_requirements_component<br /> ON methodology_activity_artifact_requirements (artifact_standard_code, artifact_component_code) |
|
|
118
|
+
| idx_methodology_activity_artifact_requirements_activity_role | CREATE INDEX idx_methodology_activity_artifact_requirements_activity_role<br /> ON methodology_activity_artifact_requirements (activity_id, requirement_role_code) |
|
|
119
|
+
| ux_methodology_activity_artifact_requirements_primary_output | CREATE UNIQUE INDEX ux_methodology_activity_artifact_requirements_primary_output<br /> ON methodology_activity_artifact_requirements (activity_id)<br /> WHERE is_primary = 1 |
|
|
120
|
+
| sqlite_autoindex_methodology_activity_artifact_requirements_2 | UNIQUE (activity_id, sort_order) |
|
|
121
|
+
| sqlite_autoindex_methodology_activity_artifact_requirements_1 | PRIMARY KEY (activity_artifact_requirement_id) |
|
|
122
|
+
|
|
123
|
+
## Relations
|
|
124
|
+
|
|
125
|
+

|
|
126
|
+
|
|
127
|
+
---
|
|
128
|
+
|
|
129
|
+
> Generated by [tbls](https://github.com/k1LoW/tbls)
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
|
2
|
+
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 1.1//EN"
|
|
3
|
+
"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd">
|
|
4
|
+
<!-- Generated by graphviz version 12.1.2 (20240928.0832)
|
|
5
|
+
-->
|
|
6
|
+
<!-- Title: methodology_activity_artifact_requirements Pages: 1 -->
|
|
7
|
+
<svg width="505pt" height="438pt"
|
|
8
|
+
viewBox="0.00 0.00 504.55 438.00" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
|
|
9
|
+
<g id="graph0" class="graph" transform="scale(1 1) rotate(0) translate(4 434)">
|
|
10
|
+
<title>methodology_activity_artifact_requirements</title>
|
|
11
|
+
<polygon fill="white" stroke="none" points="-4,4 -4,-434 500.55,-434 500.55,4 -4,4"/>
|
|
12
|
+
<!-- methodology_activity_artifact_requirements -->
|
|
13
|
+
<g id="node1" class="node">
|
|
14
|
+
<title>methodology_activity_artifact_requirements</title>
|
|
15
|
+
<polygon fill="#efefef" stroke="none" points="46.2,-337.8 46.2,-383.8 450.35,-383.8 450.35,-337.8 46.2,-337.8"/>
|
|
16
|
+
<polygon fill="none" stroke="black" points="46.2,-337.8 46.2,-383.8 450.35,-383.8 450.35,-337.8 46.2,-337.8"/>
|
|
17
|
+
<text text-anchor="start" x="53.2" y="-361.6" font-family="Arial Bold" font-size="18.00">methodology_activity_artifact_requirements</text>
|
|
18
|
+
<text text-anchor="start" x="374.1" y="-361.6" font-family="Arial" font-size="14.00"> </text>
|
|
19
|
+
<text text-anchor="start" x="405.21" y="-361.6" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
20
|
+
<text text-anchor="start" x="81.76" y="-347.2" font-family="Arial" font-size="14.00" fill="#333333">activity의 input/output/supporting 산출물 요구를 관리한다.</text>
|
|
21
|
+
<polygon fill="none" stroke="black" points="46.2,-307 46.2,-337.8 450.35,-337.8 450.35,-307 46.2,-307"/>
|
|
22
|
+
<text text-anchor="start" x="53.2" y="-319.2" font-family="Arial" font-size="14.00">activity_artifact_requirement_id </text>
|
|
23
|
+
<text text-anchor="start" x="250.85" y="-319.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
24
|
+
<polygon fill="none" stroke="black" points="46.2,-276.2 46.2,-307 450.35,-307 450.35,-276.2 46.2,-276.2"/>
|
|
25
|
+
<text text-anchor="start" x="53.2" y="-288.4" font-family="Arial" font-size="14.00">activity_id </text>
|
|
26
|
+
<text text-anchor="start" x="118.56" y="-288.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
27
|
+
<polygon fill="none" stroke="black" stroke-width="3" points="44.7,-274.7 44.7,-385.3 451.85,-385.3 451.85,-274.7 44.7,-274.7"/>
|
|
28
|
+
</g>
|
|
29
|
+
<!-- methodology_activities -->
|
|
30
|
+
<g id="node2" class="node">
|
|
31
|
+
<title>methodology_activities</title>
|
|
32
|
+
<polygon fill="#efefef" stroke="none" points="122.16,-104.8 122.16,-150.8 374.39,-150.8 374.39,-104.8 122.16,-104.8"/>
|
|
33
|
+
<polygon fill="none" stroke="black" points="122.16,-104.8 122.16,-150.8 374.39,-150.8 374.39,-104.8 122.16,-104.8"/>
|
|
34
|
+
<text text-anchor="start" x="129.16" y="-128.6" font-family="Arial Bold" font-size="18.00">methodology_activities</text>
|
|
35
|
+
<text text-anchor="start" x="298.13" y="-128.6" font-family="Arial" font-size="14.00"> </text>
|
|
36
|
+
<text text-anchor="start" x="329.25" y="-128.6" font-family="Arial" font-size="14.00" fill="#666666">[table]</text>
|
|
37
|
+
<text text-anchor="start" x="130.41" y="-114.2" font-family="Arial" font-size="14.00" fill="#333333">process 내부의 기본 수행 활동을 관리한다.</text>
|
|
38
|
+
<polygon fill="none" stroke="black" points="122.16,-74 122.16,-104.8 374.39,-104.8 374.39,-74 122.16,-74"/>
|
|
39
|
+
<text text-anchor="start" x="129.16" y="-86.2" font-family="Arial" font-size="14.00">activity_id </text>
|
|
40
|
+
<text text-anchor="start" x="194.52" y="-86.2" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
41
|
+
<polygon fill="none" stroke="black" points="122.16,-43.2 122.16,-74 374.39,-74 374.39,-43.2 122.16,-43.2"/>
|
|
42
|
+
<text text-anchor="start" x="129.16" y="-55.4" font-family="Arial" font-size="14.00">process_id </text>
|
|
43
|
+
<text text-anchor="start" x="200.76" y="-55.4" font-family="Arial" font-size="14.00" fill="#666666">[CHAR(36)]</text>
|
|
44
|
+
</g>
|
|
45
|
+
<!-- methodology_activity_artifact_requirements->methodology_activities -->
|
|
46
|
+
<g id="edge1" class="edge">
|
|
47
|
+
<title>methodology_activity_artifact_requirements:activity_id->methodology_activities:activity_id</title>
|
|
48
|
+
<path fill="none" stroke="black" d="M249.15,-264.9C258.72,-213.17 344.01,-249.06 374.39,-194 396.85,-153.29 421.88,-89.4 375.39,-89.4"/>
|
|
49
|
+
<polygon fill="black" stroke="black" points="249.15,-264.9 243.82,-274.49 248.7,-270.22 248.33,-274.53 248.33,-274.53 248.33,-274.53 248.7,-270.22 252.79,-275.25 249.15,-264.9"/>
|
|
50
|
+
</g>
|
|
51
|
+
</g>
|
|
52
|
+
</svg>
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
# methodology_activity_criteria
|
|
2
|
+
|
|
3
|
+
## Description
|
|
4
|
+
|
|
5
|
+
activity의 completion 판단 기준을 관리한다.
|
|
6
|
+
|
|
7
|
+
<details>
|
|
8
|
+
<summary><strong>Table Definition</strong></summary>
|
|
9
|
+
|
|
10
|
+
```sql
|
|
11
|
+
CREATE TABLE methodology_activity_criteria (
|
|
12
|
+
-- activity criteria 식별자
|
|
13
|
+
activity_criteria_id CHAR(36) PRIMARY KEY
|
|
14
|
+
CHECK (length(activity_criteria_id) = 36),
|
|
15
|
+
|
|
16
|
+
-- 소속 activity 식별자
|
|
17
|
+
activity_id CHAR(36) NOT NULL
|
|
18
|
+
CHECK (length(activity_id) = 36),
|
|
19
|
+
|
|
20
|
+
-- criteria 유형 코드
|
|
21
|
+
criteria_type_code VARCHAR(32) NOT NULL DEFAULT 'completion'
|
|
22
|
+
CHECK (criteria_type_code = 'completion'),
|
|
23
|
+
|
|
24
|
+
-- criteria 이름
|
|
25
|
+
criteria_name VARCHAR(256) NOT NULL,
|
|
26
|
+
|
|
27
|
+
-- criteria 내용
|
|
28
|
+
criteria_text TEXT NOT NULL,
|
|
29
|
+
|
|
30
|
+
-- 필수 여부
|
|
31
|
+
is_required INTEGER NOT NULL DEFAULT 1
|
|
32
|
+
CHECK (is_required IN (0, 1)),
|
|
33
|
+
|
|
34
|
+
-- validation 필수 여부
|
|
35
|
+
validation_required INTEGER NOT NULL DEFAULT 0
|
|
36
|
+
CHECK (validation_required IN (0, 1)),
|
|
37
|
+
|
|
38
|
+
-- 심각도 코드
|
|
39
|
+
severity_code VARCHAR(32) NOT NULL DEFAULT 'error'
|
|
40
|
+
CHECK (severity_code IN ('info', 'warning', 'error', 'critical')),
|
|
41
|
+
|
|
42
|
+
-- activity criteria 정렬 순서
|
|
43
|
+
sort_order INTEGER NOT NULL DEFAULT 0,
|
|
44
|
+
|
|
45
|
+
-- 생성 시각
|
|
46
|
+
created_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
47
|
+
|
|
48
|
+
-- 수정 시각
|
|
49
|
+
updated_at DATETIME NOT NULL DEFAULT CURRENT_TIMESTAMP,
|
|
50
|
+
|
|
51
|
+
-- 확장 메타데이터
|
|
52
|
+
metadata_json JSON
|
|
53
|
+
CHECK (metadata_json IS NULL OR json_valid(metadata_json)),
|
|
54
|
+
|
|
55
|
+
FOREIGN KEY (activity_id)
|
|
56
|
+
REFERENCES methodology_activities (activity_id)
|
|
57
|
+
ON DELETE CASCADE,
|
|
58
|
+
|
|
59
|
+
UNIQUE (activity_id, sort_order)
|
|
60
|
+
)
|
|
61
|
+
```
|
|
62
|
+
|
|
63
|
+
</details>
|
|
64
|
+
|
|
65
|
+
## Columns
|
|
66
|
+
|
|
67
|
+
| Name | Type | Default | Nullable | Parents |
|
|
68
|
+
| -------------------- | ------------ | ----------------- | -------- | --------------------------------------------------- |
|
|
69
|
+
| activity_criteria_id | CHAR(36) | | true | |
|
|
70
|
+
| activity_id | CHAR(36) | | false | [methodology_activities](methodology_activities.md) |
|
|
71
|
+
| criteria_type_code | VARCHAR(32) | 'completion' | false | |
|
|
72
|
+
| criteria_name | VARCHAR(256) | | false | |
|
|
73
|
+
| criteria_text | TEXT | | false | |
|
|
74
|
+
| is_required | INTEGER | 1 | false | |
|
|
75
|
+
| validation_required | INTEGER | 0 | false | |
|
|
76
|
+
| severity_code | VARCHAR(32) | 'error' | false | |
|
|
77
|
+
| sort_order | INTEGER | 0 | false | |
|
|
78
|
+
| created_at | DATETIME | CURRENT_TIMESTAMP | false | |
|
|
79
|
+
| updated_at | DATETIME | CURRENT_TIMESTAMP | false | |
|
|
80
|
+
| metadata_json | JSON | | true | |
|
|
81
|
+
|
|
82
|
+
## Constraints
|
|
83
|
+
|
|
84
|
+
| Name | Type | Definition |
|
|
85
|
+
| ------------------------------------------------ | ----------- | -------------------------------------------------------------------------------------------------------------------------- |
|
|
86
|
+
| activity_criteria_id | PRIMARY KEY | PRIMARY KEY (activity_criteria_id) |
|
|
87
|
+
| - (Foreign key ID: 0) | FOREIGN KEY | FOREIGN KEY (activity_id) REFERENCES methodology_activities (activity_id) ON UPDATE NO ACTION ON DELETE CASCADE MATCH NONE |
|
|
88
|
+
| sqlite_autoindex_methodology_activity_criteria_2 | UNIQUE | UNIQUE (activity_id, sort_order) |
|
|
89
|
+
| sqlite_autoindex_methodology_activity_criteria_1 | PRIMARY KEY | PRIMARY KEY (activity_criteria_id) |
|
|
90
|
+
| - | CHECK | CHECK (length(activity_criteria_id) = 36) |
|
|
91
|
+
| - | CHECK | CHECK (length(activity_id) = 36) |
|
|
92
|
+
| - | CHECK | CHECK (criteria_type_code = 'completion') |
|
|
93
|
+
| - | CHECK | CHECK (is_required IN (0, 1)) |
|
|
94
|
+
| - | CHECK | CHECK (validation_required IN (0, 1)) |
|
|
95
|
+
| - | CHECK | CHECK (severity_code IN ('info', 'warning', 'error', 'critical')) |
|
|
96
|
+
| - | CHECK | CHECK (metadata_json IS NULL OR json_valid(metadata_json)) |
|
|
97
|
+
|
|
98
|
+
## Indexes
|
|
99
|
+
|
|
100
|
+
| Name | Definition |
|
|
101
|
+
| ------------------------------------------------ | ------------------------------------------------------------------------------------------------------------- |
|
|
102
|
+
| idx_methodology_activity_criteria_activity | CREATE INDEX idx_methodology_activity_criteria_activity<br /> ON methodology_activity_criteria (activity_id) |
|
|
103
|
+
| sqlite_autoindex_methodology_activity_criteria_2 | UNIQUE (activity_id, sort_order) |
|
|
104
|
+
| sqlite_autoindex_methodology_activity_criteria_1 | PRIMARY KEY (activity_criteria_id) |
|
|
105
|
+
|
|
106
|
+
## Relations
|
|
107
|
+
|
|
108
|
+

|
|
109
|
+
|
|
110
|
+
---
|
|
111
|
+
|
|
112
|
+
> Generated by [tbls](https://github.com/k1LoW/tbls)
|