-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathsql_to_arc_database_views.puml
More file actions
124 lines (109 loc) · 2.53 KB
/
Copy pathsql_to_arc_database_views.puml
File metadata and controls
124 lines (109 loc) · 2.53 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
@startuml SqlToArc_DatabaseViews
' SQL-to-ARC view contract — presentation diagram (overview level).
' Source of truth: docs/sql_to_arc_database_views.md
' Render: PlantUML extension or docker run plantuml/plantuml
title SQL-to-ARC: Database View Contract\n<size:12><i>One investigation row → one ARC · six views · no extra index columns</i></size>
skinparam shadowing false
skinparam linetype ortho
skinparam roundcorner 8
skinparam class {
BackgroundColor #F8FAFC
BorderColor #475569
ArrowColor #64748B
FontSize 11
AttributeFontSize 10
}
skinparam note {
BackgroundColor #FFFBEB
BorderColor #D97706
FontSize 10
}
skinparam legend {
BackgroundColor #FFFFFF
FontSize 10
}
skinparam class<<hub>> {
BackgroundColor #DBEAFE
BorderColor #1D4ED8
FontSize 12
}
skinparam class<<isa>> {
BackgroundColor #E0F2FE
BorderColor #0284C7
}
skinparam class<<attached>> {
BackgroundColor #F1F5F9
BorderColor #64748B
}
skinparam class<<cells>> {
BackgroundColor #ECFDF5
BorderColor #059669
}
hide stereotype
class "vInvestigation" as inv <<hub>> {
**identifier**
**title**
**description_text**
--
<i>submission_date</i>
<i>public_release_date</i>
}
class "vStudy" as study <<isa>> {
**identifier**
**title**
**investigation_ref**
--
<i>description_text</i>
<i>dates</i>
}
class "vAssay" as assay <<isa>> {
**identifier**
**investigation_ref**
**study_ref** «JSON»
--
<i>title, description</i>
<i>measurement_type «OA»</i>
<i>technology_type «OA»</i>
<i>technology_platform</i>
}
class "vPublication" as pub <<attached>> {
**investigation_ref**
**target_type**
**target_ref**
--
<i>pubmed_id, doi, authors, title</i>
<i>status «OA»</i>
}
class "vContact" as contact <<attached>> {
**investigation_ref**
**target_type**
**target_ref**
--
<i>name, email, affiliation, …</i>
<i>roles «JSON»</i>
}
class "vAnnotationTable" as ann <<cells>> {
**investigation_ref**
**target_type**
**target_ref**
**table_name**
**column_type**
**row_index**
--
<i>column metadata «OA»</i>
<i>cell value / «OA»</i>
}
' ── ISA core (structural) ──────────────────────────────────────
inv "1" -down-> "0..*" study
inv "1" -down-> "0..*" assay
study "0..*" -right-> "0..*" assay
' ── Attached metadata (polymorphic via target_*) ─────────────
pub -up-> inv
pub .> study
contact -up-> inv
contact .> study
contact .> assay
ann -up-> inv
ann .> study
ann .> assay
@enduml