MMCL/SOURCE/docs/20260721_테이블 레이아웃.svg
2026-09-04 11:27:31 +09:00

148 lines
17 KiB
XML

<svg xmlns="http://www.w3.org/2000/svg" viewBox="0 0 1177.388 640" width="1177.388" height="640" style="--bg:#1F1F1F;--fg:#CCCCCC;--line:#CCCCCC;--accent:#0078D4;--muted:#CCCCCCCC;--surface:#181818;--border:#CCCCCC;background:var(--bg)">
<style>
@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700&amp;display=swap');
@import url('https://fonts.googleapis.com/css2?family=JetBrains+Mono:wght@400;500&amp;display=swap');
text { font-family: 'Inter', system-ui, sans-serif; }
.mono { font-family: 'JetBrains Mono', 'SF Mono', 'Fira Code', ui-monospace, monospace; }
svg {
/* Derived from --bg and --fg (overridable via --line, --accent, etc.) */
--_text: var(--fg);
--_text-sec: var(--muted, color-mix(in srgb, var(--fg) 60%, var(--bg)));
--_text-muted: var(--muted, color-mix(in srgb, var(--fg) 40%, var(--bg)));
--_text-faint: color-mix(in srgb, var(--fg) 25%, var(--bg));
--_line: var(--line, color-mix(in srgb, var(--fg) 50%, var(--bg)));
--_arrow: var(--accent, color-mix(in srgb, var(--fg) 85%, var(--bg)));
--_node-fill: var(--surface, color-mix(in srgb, var(--fg) 3%, var(--bg)));
--_node-stroke: var(--border, color-mix(in srgb, var(--fg) 20%, var(--bg)));
--_group-fill: var(--bg);
--_group-hdr: color-mix(in srgb, var(--fg) 5%, var(--bg));
--_inner-stroke: color-mix(in srgb, var(--fg) 12%, var(--bg));
--_key-badge: color-mix(in srgb, var(--fg) 10%, var(--bg));
}
</style>
<defs>
</defs>
<polyline class="er-relationship" data-entity1="dev_info" data-entity2="pos_info" data-cardinality1="one" data-cardinality2="zero-many" data-identifying="true" data-label="위치 참조 (dev_posID)" points="180,68 525.278,68" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="dev_info" data-entity2="sensor_info" data-cardinality1="one" data-cardinality2="zero-one" data-identifying="true" data-label="NILM 센서 참조 (nilm_sensorNo)" points="180,100 200,100 200,447.6666666666667 445.278,447.6666666666667 445.278,455.3333333333333 525.278,455.3333333333333" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="dev_info" data-entity2="sensor_info" data-cardinality1="one" data-cardinality2="zero-one" data-identifying="true" data-label="LED 센서 참조 (led_sensorNo)" points="180,92 210,92 210,436.6666666666667 525.278,436.6666666666667" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="dev_info" data-entity2="nilm_init_value" data-cardinality1="one" data-cardinality2="one" data-identifying="true" data-label="초기값 참조 (dev_no)" points="180,84 220,84 220,320 525.278,320" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="dev_info" data-entity2="ai_control_log" data-cardinality1="one" data-cardinality2="zero-many" data-identifying="true" data-label="AI 제어 이력 생성" points="180,76 230,76 230,194 525.278,194" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="dev_info" data-entity2="event_log" data-cardinality1="one" data-cardinality2="zero-many" data-identifying="true" data-label="이벤트/에러 로그 생성" points="180,108 190,108 190,572 525.278,572" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="sensor_info" data-entity2="sensor_history_log" data-cardinality1="one" data-cardinality2="zero-many" data-identifying="true" data-label="측정 이력 생성" points="665.278,436.6666666666667 990.36,436.6666666666667" fill="none" stroke="var(--_line)" stroke-width="1" />
<polyline class="er-relationship" data-entity1="sensor_info" data-entity2="type_info" data-cardinality1="many" data-cardinality2="one" data-identifying="true" data-label="센서 타입 (1:NILM, 2:경광등)" points="665.278,455.3333333333333 675.278,455.3333333333333 675.278,562.6666666666667 990.36,562.6666666666667" fill="none" stroke="var(--_line)" stroke-width="1" />
<g class="entity" data-id="dev_info" data-label="dev_info">
<rect x="40" y="60" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="40" y="60" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="110" y="77" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">dev_info</text>
<line x1="40" y1="94" x2="180" y2="94" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="110" y="105" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="pos_info" data-label="pos_info">
<rect x="525.278" y="40" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="525.278" y="40" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="595.278" y="57" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">pos_info</text>
<line x1="525.278" y1="74" x2="665.278" y2="74" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="595.278" y="85" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="sensor_info" data-label="sensor_info">
<rect x="525.278" y="418" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="525.278" y="418" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="595.278" y="435" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">sensor_info</text>
<line x1="525.278" y1="452" x2="665.278" y2="452" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="595.278" y="463" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="nilm_init_value" data-label="nilm_init_value">
<rect x="525.278" y="292" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="525.278" y="292" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="595.278" y="309" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">nilm_init_value</text>
<line x1="525.278" y1="326" x2="665.278" y2="326" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="595.278" y="337" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="ai_control_log" data-label="ai_control_log">
<rect x="525.278" y="166" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="525.278" y="166" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="595.278" y="183" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">ai_control_log</text>
<line x1="525.278" y1="200" x2="665.278" y2="200" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="595.278" y="211" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="event_log" data-label="event_log">
<rect x="525.278" y="544" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="525.278" y="544" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="595.278" y="561" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">event_log</text>
<line x1="525.278" y1="578" x2="665.278" y2="578" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="595.278" y="589" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="sensor_history_log" data-label="sensor_history_log">
<rect x="990.36" y="408.6666666666667" width="147.028" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="990.36" y="408.6666666666667" width="147.028" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="1063.874" y="425.6666666666667" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">sensor_history_log</text>
<line x1="990.36" y1="442.6666666666667" x2="1137.388" y2="442.6666666666667" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="1063.874" y="453.6666666666667" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<g class="entity" data-id="type_info" data-label="type_info">
<rect x="990.36" y="534.6666666666667" width="140" height="56" rx="0" ry="0" fill="var(--_node-fill)" stroke="var(--_node-stroke)" stroke-width="1" />
<rect x="990.36" y="534.6666666666667" width="140" height="34" rx="0" ry="0" fill="var(--_group-hdr)" stroke="var(--_node-stroke)" stroke-width="1" />
<text x="1060.3600000000001" y="551.6666666666667" text-anchor="middle" font-size="13" font-weight="700" fill="var(--_text)" dy="4.55">type_info</text>
<line x1="990.36" y1="568.6666666666667" x2="1130.3600000000001" y2="568.6666666666667" stroke="var(--_node-stroke)" stroke-width="0.75" />
<text x="1060.3600000000001" y="579.6666666666667" text-anchor="middle" dy="0.35em" font-size="11" fill="var(--_text-faint)" font-style="italic">(no attributes)</text>
</g>
<line x1="184" y1="62" x2="184" y2="74" stroke="var(--_line)" stroke-width="1.25" />
<line x1="188" y1="62" x2="188" y2="74" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="75" x2="509.278" y2="68" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="68" x2="509.278" y2="68" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="61" x2="509.278" y2="68" stroke="var(--_line)" stroke-width="1.25" />
<circle cx="505.278" cy="68" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="1.25" />
<line x1="184" y1="94" x2="184" y2="106" stroke="var(--_line)" stroke-width="1.25" />
<line x1="188" y1="94" x2="188" y2="106" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="461.3333333333333" x2="521.278" y2="449.3333333333333" stroke="var(--_line)" stroke-width="1.25" />
<line x1="517.278" y1="461.3333333333333" x2="517.278" y2="449.3333333333333" stroke="var(--_line)" stroke-width="1.25" />
<circle cx="513.278" cy="455.3333333333333" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="1.25" />
<line x1="184" y1="86" x2="184" y2="98" stroke="var(--_line)" stroke-width="1.25" />
<line x1="188" y1="86" x2="188" y2="98" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="442.6666666666667" x2="521.278" y2="430.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<line x1="517.278" y1="442.6666666666667" x2="517.278" y2="430.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<circle cx="513.278" cy="436.6666666666667" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="1.25" />
<line x1="184" y1="78" x2="184" y2="90" stroke="var(--_line)" stroke-width="1.25" />
<line x1="188" y1="78" x2="188" y2="90" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="326" x2="521.278" y2="314" stroke="var(--_line)" stroke-width="1.25" />
<line x1="517.278" y1="326" x2="517.278" y2="314" stroke="var(--_line)" stroke-width="1.25" />
<line x1="184" y1="70" x2="184" y2="82" stroke="var(--_line)" stroke-width="1.25" />
<line x1="188" y1="70" x2="188" y2="82" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="201" x2="509.278" y2="194" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="194" x2="509.278" y2="194" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="187" x2="509.278" y2="194" stroke="var(--_line)" stroke-width="1.25" />
<circle cx="505.278" cy="194" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="1.25" />
<line x1="184" y1="102" x2="184" y2="114" stroke="var(--_line)" stroke-width="1.25" />
<line x1="188" y1="102" x2="188" y2="114" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="579" x2="509.278" y2="572" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="572" x2="509.278" y2="572" stroke="var(--_line)" stroke-width="1.25" />
<line x1="521.278" y1="565" x2="509.278" y2="572" stroke="var(--_line)" stroke-width="1.25" />
<circle cx="505.278" cy="572" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="1.25" />
<line x1="669.278" y1="430.6666666666667" x2="669.278" y2="442.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<line x1="673.278" y1="430.6666666666667" x2="673.278" y2="442.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<line x1="986.36" y1="443.6666666666667" x2="974.36" y2="436.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<line x1="986.36" y1="436.6666666666667" x2="974.36" y2="436.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<line x1="986.36" y1="429.6666666666667" x2="974.36" y2="436.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<circle cx="970.36" cy="436.6666666666667" r="4" fill="var(--bg)" stroke="var(--_line)" stroke-width="1.25" />
<line x1="669.278" y1="448.3333333333333" x2="681.278" y2="455.3333333333333" stroke="var(--_line)" stroke-width="1.25" />
<line x1="669.278" y1="455.3333333333333" x2="681.278" y2="455.3333333333333" stroke="var(--_line)" stroke-width="1.25" />
<line x1="669.278" y1="462.3333333333333" x2="681.278" y2="455.3333333333333" stroke="var(--_line)" stroke-width="1.25" />
<line x1="986.36" y1="568.6666666666667" x2="986.36" y2="556.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<line x1="982.36" y1="568.6666666666667" x2="982.36" y2="556.6666666666667" stroke="var(--_line)" stroke-width="1.25" />
<rect x="293.76" y="57.85" width="117.75800000000001" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="352.639" y="68" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">위치 참조 (dev_posID)</text>
<rect x="117.36099999999998" y="420.1556666666667" width="165.27800000000005" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="200" y="430.3056666666667" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">NILM 센서 참조 (nilm_sensorNo)</text>
<rect x="131.22199999999998" y="396.8223333333334" width="157.556" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="210" y="406.9723333333334" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">LED 센서 참조 (led_sensorNo)</text>
<rect x="177.542" y="309.85" width="114.19400000000003" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="234.639" y="320" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">초기값 참조 (dev_no)</text>
<rect x="245.749" y="183.85" width="95.78000000000002" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="293.639" y="194" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">AI 제어 이력 생성</text>
<rect x="128.44799999999998" y="492.48900000000003" width="123.10400000000003" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="190" y="502.639" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">이벤트/에러 로그 생성</text>
<rect x="785.5719999999999" y="426.5166666666667" width="84.49400000000003" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="827.819" y="436.6666666666667" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">측정 이력 생성</text>
<rect x="701.6113333333333" y="552.5166666666668" width="145.08200000000002" height="20.3" rx="2" ry="2" fill="var(--bg)" stroke="var(--_inner-stroke)" stroke-width="0.5" />
<text x="774.1523333333333" y="562.6666666666667" text-anchor="middle" font-size="11" font-weight="400" fill="var(--_text-muted)" dy="3.8499999999999996">센서 타입 (1:NILM, 2:경광등)</text>
</svg>