1 line
18 KiB
XML
1 line
18 KiB
XML
<svg xmlns="http://www.w3.org/2000/svg" width="1062" height="1012" viewBox="0 0 1062 1012" role="img" aria-labelledby="G02-领域概念关系Title G02-领域概念关系Desc"><title id="G02-领域概念关系Title">G02 领域概念关系 · 领域概念关系</title><desc id="G02-领域概念关系Desc">项目代表业务目标,APP 代表完整软件;组件运行软件,资源由显式绑定关联。;2026-10-12,业务基线 0.14,图集版本 0.17</desc><rect width="100%" height="100%" fill="#fff"/><text x="32" y="42" font-family="Microsoft YaHei,Arial,sans-serif" font-size="28" font-weight="600" fill="#17233a">G02 领域概念关系</text><text x="32" y="79" font-family="Microsoft YaHei,Arial,sans-serif" font-size="18" fill="#526176">2026-10-12 · 业务基线 0.14 · 图集 0.17 · 主图 · 技术选型未定</text><g transform="translate(32,124)"><svg id="diagram02x0" width="997.6640625" xmlns="http://www.w3.org/2000/svg" class="flowchart" height="840" viewBox="0 0 997.6640625 840" role="graphics-document document" aria-roledescription="flowchart-v2"><style>#diagram02x0{font-family:Microsoft YaHei,Arial,sans-serif;font-size:20px;fill:#17233a;}@keyframes edge-animation-frame{from{stroke-dashoffset:0;}}@keyframes dash{to{stroke-dashoffset:0;}}#diagram02x0 .edge-animation-slow{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 50s linear infinite;stroke-linecap:round;}#diagram02x0 .edge-animation-fast{stroke-dasharray:9,5!important;stroke-dashoffset:900;animation:dash 20s linear infinite;stroke-linecap:round;}#diagram02x0 .error-icon{fill:#ffffff;}#diagram02x0 .error-text{fill:#000000;stroke:#000000;}#diagram02x0 .edge-thickness-normal{stroke-width:1px;}#diagram02x0 .edge-thickness-thick{stroke-width:3.5px;}#diagram02x0 .edge-pattern-solid{stroke-dasharray:0;}#diagram02x0 .edge-thickness-invisible{stroke-width:0;fill:none;}#diagram02x0 .edge-pattern-dashed{stroke-dasharray:3;}#diagram02x0 .edge-pattern-dotted{stroke-dasharray:2;}#diagram02x0 .marker{fill:#60718a;stroke:#60718a;}#diagram02x0 .marker.cross{stroke:#60718a;}#diagram02x0 svg{font-family:Microsoft YaHei,Arial,sans-serif;font-size:20px;}#diagram02x0 p{margin:0;}#diagram02x0 .label{font-family:Microsoft YaHei,Arial,sans-serif;color:#17233a;}#diagram02x0 .cluster-label text{fill:#000000;}#diagram02x0 .cluster-label span{color:#000000;}#diagram02x0 .cluster-label span p{background-color:transparent;}#diagram02x0 .label text,#diagram02x0 span{fill:#17233a;color:#17233a;}#diagram02x0 .node rect,#diagram02x0 .node circle,#diagram02x0 .node ellipse,#diagram02x0 .node polygon,#diagram02x0 .node path{fill:#eef5ff;stroke:#8198bb;stroke-width:1px;}#diagram02x0 .rough-node .label text,#diagram02x0 .node .label text,#diagram02x0 .image-shape .label,#diagram02x0 .icon-shape .label{text-anchor:middle;}#diagram02x0 .node .katex path{fill:#000;stroke:#000;stroke-width:1px;}#diagram02x0 .rough-node .label,#diagram02x0 .node .label,#diagram02x0 .image-shape .label,#diagram02x0 .icon-shape .label{text-align:center;}#diagram02x0 .node.clickable{cursor:pointer;}#diagram02x0 .root .anchor path{fill:#60718a!important;stroke-width:0;stroke:#60718a;}#diagram02x0 .arrowheadPath{fill:#0b0b0b;}#diagram02x0 .edgePath .path{stroke:#60718a;stroke-width:2.0px;}#diagram02x0 .flowchart-link{stroke:#60718a;fill:none;}#diagram02x0 .edgeLabel{background-color:#f3f8f6;text-align:center;}#diagram02x0 .edgeLabel p{background-color:#f3f8f6;}#diagram02x0 .edgeLabel rect{opacity:0.5;background-color:#f3f8f6;fill:#f3f8f6;}#diagram02x0 .labelBkg{background-color:rgba(243, 248, 246, 0.5);}#diagram02x0 .cluster rect{fill:#f8fafc;stroke:#cbd5e1;stroke-width:1px;}#diagram02x0 .cluster text{fill:#000000;}#diagram02x0 .cluster span{color:#000000;}#diagram02x0 div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:Microsoft YaHei,Arial,sans-serif;font-size:12px;background:#ffffff;border:1px solid hsl(0, 0%, 90%);border-radius:2px;pointer-events:none;z-index:100;}#diagram02x0 .flowchartTitleText{text-anchor:middle;font-size:18px;fill:#17233a;}#diagram02x0 rect.text{fill:none;stroke-width:0;}#diagram02x0 .icon-shape,#diagram02x0 .image-shape{background-color:#f3f8f6;text-align:center;}#diagram02x0 .icon-shape p,#diagram02x0 .image-shape p{background-color:#f3f8f6;padding:2px;}#diagram02x0 .icon-shape rect,#diagram02x0 .image-shape rect{opacity:0.5;background-color:#f3f8f6;fill:#f3f8f6;}#diagram02x0 .label-icon{display:inline-block;height:1em;overflow:visible;vertical-align:-0.125em;}#diagram02x0 .node .label-icon path{fill:currentColor;stroke:revert;stroke-width:revert;}#diagram02x0 :root{--mermaid-font-family:Microsoft YaHei,Arial,sans-serif;}</style><g><marker id="diagram02x0_flowchart-v2-pointEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 0 L 10 5 L 0 10 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="diagram02x0_flowchart-v2-pointStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="4.5" refY="5" markerUnits="userSpaceOnUse" markerWidth="8" markerHeight="8" orient="auto"><path d="M 0 5 L 10 10 L 10 0 z" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></path></marker><marker id="diagram02x0_flowchart-v2-circleEnd" class="marker flowchart-v2" viewBox="0 0 10 10" refX="11" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle></marker><marker id="diagram02x0_flowchart-v2-circleStart" class="marker flowchart-v2" viewBox="0 0 10 10" refX="-1" refY="5" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><circle cx="5" cy="5" r="5" class="arrowMarkerPath" style="stroke-width: 1; stroke-dasharray: 1, 0;"></circle></marker><marker id="diagram02x0_flowchart-v2-crossEnd" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="12" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"></path></marker><marker id="diagram02x0_flowchart-v2-crossStart" class="marker cross flowchart-v2" viewBox="0 0 11 11" refX="-1" refY="5.2" markerUnits="userSpaceOnUse" markerWidth="11" markerHeight="11" orient="auto"><path d="M 1,1 l 9,9 M 10,1 l -9,9" class="arrowMarkerPath" style="stroke-width: 2; stroke-dasharray: 1, 0;"></path></marker><g class="root"><g class="clusters"></g><g class="edgePaths"><path d="M385.508,74L385.508,81.333C385.508,88.667,385.508,103.333,385.508,117.333C385.508,131.333,385.508,144.667,385.508,151.333L385.508,158" id="L_account_project_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_account_project_0" data-points="W3sieCI6Mzg1LjUwNzgxMjUsInkiOjc0fSx7IngiOjM4NS41MDc4MTI1LCJ5IjoxMTh9LHsieCI6Mzg1LjUwNzgxMjUsInkiOjE2Mn1d" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path><path d="M277.621,258L257.017,267.167C236.414,276.333,195.207,294.667,174.603,312.333C154,330,154,347,154,355.5L154,364" id="L_project_grouping_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_project_grouping_0" data-points="W3sieCI6Mjc3LjYyMDY3NjU3NzY2OTksInkiOjI1OH0seyJ4IjoxNTQsInkiOjMxM30seyJ4IjoxNTQsInkiOjM2OH1d" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path><path d="M385.508,258L385.508,267.167C385.508,276.333,385.508,294.667,398.129,312.619C410.75,330.572,435.991,348.143,448.612,356.929L461.233,365.715" id="L_project_app_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_project_app_0" data-points="W3sieCI6Mzg1LjUwNzgxMjUsInkiOjI1OH0seyJ4IjozODUuNTA3ODEyNSwieSI6MzEzfSx7IngiOjQ2NC41MTYwODAwOTcwODc0LCJ5IjozNjh9XQ==" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path><path d="M681.122,258L667.954,267.167C654.785,276.333,628.449,294.667,609.542,312.445C590.634,330.224,579.156,347.448,573.416,356.06L567.677,364.671" id="L_preset_app_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_preset_app_0" data-points="W3sieCI6NjgxLjEyMTU0ODg0NzA4NzQsInkiOjI1OH0seyJ4Ijo2MDIuMTEzMjgxMjUsInkiOjMxM30seyJ4Ijo1NjUuNDU4NDM0NDY2MDE5NCwieSI6MzY4fV0=" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path><path d="M533.469,464L533.469,471.333C533.469,478.667,533.469,493.333,533.469,507.333C533.469,521.333,533.469,534.667,533.469,541.333L533.469,548" id="L_app_component_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_app_component_0" data-points="W3sieCI6NTMzLjQ2ODc1LCJ5Ijo0NjR9LHsieCI6NTMzLjQ2ODc1LCJ5Ijo1MDh9LHsieCI6NTMzLjQ2ODc1LCJ5Ijo1NTJ9XQ==" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path><path d="M533.469,648L533.469,655.333C533.469,662.667,533.469,677.333,533.469,691.333C533.469,705.333,533.469,718.667,533.469,725.333L533.469,732" id="L_component_resource_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_component_resource_0" data-points="W3sieCI6NTMzLjQ2ODc1LCJ5Ijo2NDh9LHsieCI6NTMzLjQ2ODc1LCJ5Ijo2OTJ9LHsieCI6NTMzLjQ2ODc1LCJ5Ijo3MzZ9XQ==" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path><path d="M535.023,242.909L588.098,254.591C641.172,266.273,747.32,289.636,800.395,309.818C853.469,330,853.469,347,853.469,355.5L853.469,364" id="L_project_service_0" class="edge-thickness-normal edge-pattern-solid edge-thickness-normal edge-pattern-solid flowchart-link" style=";" data-edge="true" data-et="edge" data-id="L_project_service_0" data-points="W3sieCI6NTM1LjAyMzQzNzUsInkiOjI0Mi45MDg5NjM0MjE3NTk5NX0seyJ4Ijo4NTMuNDY4NzUsInkiOjMxM30seyJ4Ijo4NTMuNDY4NzUsInkiOjM2OH1d" marker-end="url(#diagram02x0_flowchart-v2-pointEnd)"></path></g><g class="edgeLabels"><g class="edgeLabel" transform="translate(385.5078125, 118)"><g class="label" data-id="L_account_project_0" transform="translate(-43, -15)"><g><rect class="background" style="" x="-3" y="-3" width="86" height="30"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">拥有多个</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(154, 313)"><g class="label" data-id="L_project_grouping_0" transform="translate(-102, -26)"><g><rect class="background" style="" x="-2" y="-3" width="204" height="52"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">可归入一个组;不产生</tspan></tspan><tspan class="text-outer-tspan" x="0" y="1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">互通授权</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(385.5078125, 313)"><g class="label" data-id="L_project_app_0" transform="translate(-23, -15)"><g><rect class="background" style="" x="-3" y="-3" width="46" height="30"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">包含</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(614.49453, 304.38104)"><g class="label" data-id="L_preset_app_0" transform="translate(-82.5, -15)"><g><rect class="background" style="" x="-2" y="-3" width="165" height="30"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">实例化并约束配置</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(533.46875, 508)"><g class="label" data-id="L_app_component_0" transform="translate(-52.5, -15)"><g><rect class="background" style="" x="-2" y="-3" width="105" height="30"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">由组件运行</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(533.46875, 692)"><g class="label" data-id="L_component_resource_0" transform="translate(-82, -15)"><g><rect class="background" style="" x="-2" y="-3" width="164" height="30"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">显式引用,可共享</tspan></tspan></text></g></g></g><g class="edgeLabel" transform="translate(853.46875, 313)"><g class="label" data-id="L_project_service_0" transform="translate(-92, -15)"><g><rect class="background" style="" x="-2" y="-3" width="184" height="30"></rect><text y="-10.1" style=""><tspan class="text-outer-tspan" x="0" y="-0.1em" dy="1.1em"><tspan font-style="normal" class="text-inner-tspan" font-weight="normal">关联,可仅购买邮箱</tspan></tspan></text></g></g></g></g><g class="nodes"><g class="node default" id="flowchart-account-0" transform="translate(385.5078125, 41)"><rect class="basic label-container" style="" x="-76" y="-33" width="152" height="66"></rect><g class="label" style="" transform="translate(-40, -15)"><rect></rect><foreignObject width="80" height="30"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>客户账户</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-grouping-1" transform="translate(154, 416)"><rect class="basic label-container" style="" x="-146" y="-48" width="292" height="96"></rect><g class="label" style="" transform="translate(-110, -30)"><rect></rect><foreignObject width="220" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>项目组:可选、单层<br>一个项目最多属于一个组</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-project-2" transform="translate(385.5078125, 210)"><rect class="basic label-container" style="" x="-149.515625" y="-48" width="299.03125" height="96"></rect><g class="label" style="" transform="translate(-113.515625, -30)"><rect></rect><foreignObject width="227.03125" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>项目:一个业务目标<br>稳定 ID;不依赖人工编号</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-app-3" transform="translate(533.46875, 416)"><rect class="basic label-container" style="" x="-140.015625" y="-48" width="280.03125" height="96"></rect><g class="label" style="" transform="translate(-104.015625, -30)"><rect></rect><foreignObject width="208.03125" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>APP:完整软件实例<br>项目包含 0 到多个 APP</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-preset-4" transform="translate(750.07421875, 210)"><rect class="basic label-container" style="" x="-126.1953125" y="-48" width="252.390625" height="96"></rect><g class="label" style="" transform="translate(-90.1953125, -30)"><rect></rect><foreignObject width="180.390625" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>应用目录 / 版本预设<br>声明必需与可选依赖</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-component-5" transform="translate(533.46875, 600)"><rect class="basic label-container" style="" x="-177.21875" y="-48" width="354.4375" height="96"></rect><g class="label" style="" transform="translate(-141.21875, -30)"><rect></rect><foreignObject width="282.4375" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>运行组件:Web / API / worker<br>一个 APP 可有多个组件</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-resource-6" transform="translate(533.46875, 784)"><rect class="basic label-container" style="" x="-156" y="-48" width="312" height="96"></rect><g class="label" style="" transform="translate(-120, -30)"><rect></rect><foreignObject width="240" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>数据库、持久化存储等资源<br>明确归属与使用引用</p></span></div></foreignObject></g></g><g class="node default" id="flowchart-service-7" transform="translate(853.46875, 416)"><rect class="basic label-container" style="" x="-136.1953125" y="-48" width="272.390625" height="96"></rect><g class="label" style="" transform="translate(-100.1953125, -30)"><rect></rect><foreignObject width="200.390625" height="60"><div xmlns="http://www.w3.org/1999/xhtml" style="display: table-cell; white-space: nowrap; line-height: 1.5; max-width: 310px; text-align: center;"><span class="nodeLabel"><p>独立服务:域名 / 邮箱<br>各自的订购与存续周期</p></span></div></foreignObject></g></g></g></g></g></svg></g></svg> |