Files
oxygen-api/doc/database.drawio
2024-01-14 18:59:07 +08:00

983 lines
94 KiB
Plaintext

<mxfile host="app.diagrams.net" modified="2024-01-14T08:44:54.324Z" agent="Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/121.0.0.0 Safari/537.36 Edg/121.0.0.0" etag="4fkK1omFUg_r2hJCQYkM" version="22.1.18" type="device">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="2049" dy="2422" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="827" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="SgG1xhS9EfBviSQqJXSq-0" value="t_user 用户表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1210" y="-350" width="320" height="480" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-1" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="30" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-2" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-1">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-3" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-1">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-4" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="60" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-5" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-4">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-6" value="username 用户名 - unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-4">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-7" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="90" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-8" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-7">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-9" value="password 密码" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-7">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-10" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="120" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-11" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-10">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-12" value="verify 验证邮箱&amp;nbsp;- unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-10">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-13" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="150" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-14" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-13">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-15" value="forget 忘记密码 - unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-13">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-16" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="180" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-17" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-16">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-18" value="locking 锁定" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-16">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-19" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="210" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-20" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-19">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-21" value="expiration 过期时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-19">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-22" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="240" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-23" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-22">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-24" value="credentials_expiration 认证过期时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-22">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-25" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="270" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-26" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-25">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-27" value="enable 启用" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-25">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-28" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="300" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-29" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-28">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-30" value="current_login_time 当前登录时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-28">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-31" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="330" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-32" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-31">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-33" value="current_login_ip 当前登录 IP" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-31">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-34" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="360" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-35" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-34">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-36" value="last_login_time 上次登录时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-34">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-37" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="390" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-38" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-37">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-39" value="last_login_ip 上次登录 IP" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-37">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-40" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="420" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-41" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-40">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-42" value="create_time 创建时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-40">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-43" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-0">
<mxGeometry y="450" width="320" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-44" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-43">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-45" value="update_time 修改时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-43">
<mxGeometry x="30" width="290" height="30" as="geometry">
<mxRectangle width="290" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-49" value="t_power_type 权限类型表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1265" y="580" width="210" height="90" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-50" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-49">
<mxGeometry y="30" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-51" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-50">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-52" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-50">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-53" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-49">
<mxGeometry y="60" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-54" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-53">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-55" value="name 权限类型名" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-53">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-63" value="t_power 权限表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1280" y="430" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-64" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-63">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-65" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-64">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-66" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-64">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-67" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-63">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-68" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-67">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-69" value="type_id 权限类型" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-67">
<mxGeometry x="30" width="150" height="30" as="geometry">
<mxRectangle width="150" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-80" value="t_menu 菜单表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1350" y="760" width="230" height="180" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-81" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-80">
<mxGeometry y="30" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-82" value="PK,FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-81">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-83" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-81">
<mxGeometry x="70" width="160" height="30" as="geometry">
<mxRectangle width="160" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-84" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-80">
<mxGeometry y="60" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-85" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-84">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-86" value="name 菜单名" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-84">
<mxGeometry x="70" width="160" height="30" as="geometry">
<mxRectangle width="160" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-87" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-80">
<mxGeometry y="90" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-88" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-87">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-89" value="url URL" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-87">
<mxGeometry x="70" width="160" height="30" as="geometry">
<mxRectangle width="160" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-90" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-80">
<mxGeometry y="120" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-91" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-90">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-92" value="parent_id 父ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-90">
<mxGeometry x="70" width="160" height="30" as="geometry">
<mxRectangle width="160" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-106" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-80">
<mxGeometry y="150" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-107" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=0;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-106">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-108" value="module_id 模块ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=0;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-106">
<mxGeometry x="70" width="160" height="30" as="geometry">
<mxRectangle width="160" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-93" value="t_func 功能表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1120" y="760" width="210" height="150" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-94" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-93">
<mxGeometry y="30" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-95" value="PK, FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-94">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-96" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-94">
<mxGeometry x="70" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-97" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-93">
<mxGeometry y="60" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-98" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-97">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-99" value="name 功能名" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-97">
<mxGeometry x="70" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-100" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-93">
<mxGeometry y="90" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-101" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-100">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-102" value="parent_id 父ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-100">
<mxGeometry x="70" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-103" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-93">
<mxGeometry y="120" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-104" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-103">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-105" value="menu_id 菜单ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-103">
<mxGeometry x="70" width="140" height="30" as="geometry">
<mxRectangle width="140" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-109" value="t_module 模块表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1650" y="760" width="180" height="90" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-110" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-109">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-111" value="PK,FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-110">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-112" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-110">
<mxGeometry x="70" width="110" height="30" as="geometry">
<mxRectangle width="110" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-113" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-109">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-114" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-113">
<mxGeometry width="70" height="30" as="geometry">
<mxRectangle width="70" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-115" value="name 模块名" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-113">
<mxGeometry x="70" width="110" height="30" as="geometry">
<mxRectangle width="110" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-122" value="t_operation 操作表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="870" y="760" width="180" height="150" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-123" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-122">
<mxGeometry y="30" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-124" value="PK,FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-123">
<mxGeometry width="60" height="30" as="geometry">
<mxRectangle width="60" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-125" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-123">
<mxGeometry x="60" width="120" height="30" as="geometry">
<mxRectangle width="120" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-126" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-122">
<mxGeometry y="60" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-127" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-126">
<mxGeometry width="60" height="30" as="geometry">
<mxRectangle width="60" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-128" value="name 操作名" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-126">
<mxGeometry x="60" width="120" height="30" as="geometry">
<mxRectangle width="120" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-129" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-122">
<mxGeometry y="90" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-130" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-129">
<mxGeometry width="60" height="30" as="geometry">
<mxRectangle width="60" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-131" value="code 操作编码" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-129">
<mxGeometry x="60" width="120" height="30" as="geometry">
<mxRectangle width="120" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-132" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-122">
<mxGeometry y="120" width="180" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-133" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-132">
<mxGeometry width="60" height="30" as="geometry">
<mxRectangle width="60" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-134" value="func_id 功能ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-132">
<mxGeometry x="60" width="120" height="30" as="geometry">
<mxRectangle width="120" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-135" value="t_group 用户组表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="570" y="160" width="240" height="180" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-136" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-135">
<mxGeometry y="30" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-137" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-136">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-138" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-136">
<mxGeometry x="30" width="210" height="30" as="geometry">
<mxRectangle width="210" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-139" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-135">
<mxGeometry y="60" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-140" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-139">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-141" value="name 用户组名&amp;nbsp;- unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-139">
<mxGeometry x="30" width="210" height="30" as="geometry">
<mxRectangle width="210" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-142" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-135">
<mxGeometry y="90" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-143" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-142">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-144" value="enable 启用" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-142">
<mxGeometry x="30" width="210" height="30" as="geometry">
<mxRectangle width="210" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-145" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-135">
<mxGeometry y="120" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-146" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-145">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-147" value="create_time 创建时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-145">
<mxGeometry x="30" width="210" height="30" as="geometry">
<mxRectangle width="210" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-148" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-135">
<mxGeometry y="150" width="240" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-149" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-148">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-150" value="update_time 修改时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-148">
<mxGeometry x="30" width="210" height="30" as="geometry">
<mxRectangle width="210" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-154" value="t_user_group 中间表-用户-用户组" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="845" y="-290" width="275" height="120" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-155" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-154">
<mxGeometry y="30" width="275" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-156" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-155">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-157" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-155">
<mxGeometry x="30" width="245" height="30" as="geometry">
<mxRectangle width="245" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-158" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-154">
<mxGeometry y="60" width="275" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-159" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-158">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-160" value="user_id 用户ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-158">
<mxGeometry x="30" width="245" height="30" as="geometry">
<mxRectangle width="245" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-161" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-154">
<mxGeometry y="90" width="275" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-162" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-161">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-163" value="group_id 用户组ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-161">
<mxGeometry x="30" width="245" height="30" as="geometry">
<mxRectangle width="245" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-167" value="t_role 角色表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1940" y="160" width="210" height="180" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-168" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-167">
<mxGeometry y="30" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-169" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-168">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-170" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-168">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-171" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-167">
<mxGeometry y="60" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-172" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-171">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-173" value="name 角色名&amp;nbsp;- unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-171">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-174" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-167">
<mxGeometry y="90" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-175" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-174">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-176" value="enable 启用" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-174">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-177" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-167">
<mxGeometry y="120" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-178" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-177">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-179" value="create_time 创建时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-177">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-180" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-167">
<mxGeometry y="150" width="210" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-181" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-180">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-182" value="update_time 修改时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-180">
<mxGeometry x="30" width="180" height="30" as="geometry">
<mxRectangle width="180" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-183" value="t_role_group 中间表-角色-用户组" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1530" y="190" width="280" height="120" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-184" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-183">
<mxGeometry y="30" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-185" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-184">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-186" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-184">
<mxGeometry x="30" width="250" height="30" as="geometry">
<mxRectangle width="250" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-187" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-183">
<mxGeometry y="60" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-188" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-187">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-189" value="role_id 角色ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-187">
<mxGeometry x="30" width="250" height="30" as="geometry">
<mxRectangle width="250" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-190" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-183">
<mxGeometry y="90" width="280" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-191" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-190">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-192" value="group_id 用户组ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-190">
<mxGeometry x="30" width="250" height="30" as="geometry">
<mxRectangle width="250" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-196" value="t_user_role 中间表-用户-角色" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1610" y="-290" width="230" height="120" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-197" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-196">
<mxGeometry y="30" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-198" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-197">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-199" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-197">
<mxGeometry x="30" width="200" height="30" as="geometry">
<mxRectangle width="200" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-200" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-196">
<mxGeometry y="60" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-201" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-200">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-202" value="user_id 用户ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-200">
<mxGeometry x="30" width="200" height="30" as="geometry">
<mxRectangle width="200" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-203" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-196">
<mxGeometry y="90" width="230" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-204" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-203">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-205" value="role_id 角色ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-203">
<mxGeometry x="30" width="200" height="30" as="geometry">
<mxRectangle width="200" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-209" value="t_power_role 中间表-权限-角色" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="950" y="190" width="250" height="120" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-210" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-209">
<mxGeometry y="30" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-211" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-210">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-212" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-210">
<mxGeometry x="30" width="220" height="30" as="geometry">
<mxRectangle width="220" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-213" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-209">
<mxGeometry y="60" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-214" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-213">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-215" value="power_id 权限ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-213">
<mxGeometry x="30" width="220" height="30" as="geometry">
<mxRectangle width="220" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-216" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-209">
<mxGeometry y="90" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-217" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-216">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-218" value="role_id 角色ID" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-216">
<mxGeometry x="30" width="220" height="30" as="geometry">
<mxRectangle width="220" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-222" value="t_user_info 用户资料表" style="shape=table;startSize=30;container=1;collapsible=1;childLayout=tableLayout;fixedRows=1;rowLines=0;fontStyle=1;align=center;resizeLast=1;html=1;fontSize=16;" vertex="1" parent="WIyWlLk6GJQsqaUBKTNV-1">
<mxGeometry x="1262.5" y="-650" width="215" height="240" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-223" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="30" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-224" value="PK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;fontStyle=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-223">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-225" value="id" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;fontStyle=5;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-223">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-226" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="60" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-227" value="FK" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-226">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-228" value="user_id 用户ID&amp;nbsp;- unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-226">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-229" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="90" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-230" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-229">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-231" value="nickname 昵称" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-229">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-232" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="120" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-233" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-232">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-234" value="avatar 头像" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;whiteSpace=wrap;html=1;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-232">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-235" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="150" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-236" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-235">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-237" value="email 邮箱 - unique" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-235">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-238" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="180" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-239" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-238">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-240" value="create_time 创建时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-238">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-241" value="" style="shape=tableRow;horizontal=0;startSize=0;swimlaneHead=0;swimlaneBody=0;fillColor=none;collapsible=0;dropTarget=0;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;top=0;left=0;right=0;bottom=0;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-222">
<mxGeometry y="210" width="215" height="30" as="geometry" />
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-242" value="" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;editable=1;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-241">
<mxGeometry width="30" height="30" as="geometry">
<mxRectangle width="30" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-243" value="update_time 修改时间" style="shape=partialRectangle;connectable=0;fillColor=none;top=0;left=0;bottom=0;right=0;align=left;spacingLeft=6;overflow=hidden;fontSize=16;" vertex="1" parent="SgG1xhS9EfBviSQqJXSq-241">
<mxGeometry x="30" width="185" height="30" as="geometry">
<mxRectangle width="185" height="30" as="alternateBounds" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-263" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-64" target="SgG1xhS9EfBviSQqJXSq-123">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1030" y="470" as="sourcePoint" />
<mxPoint x="1080" y="420" as="targetPoint" />
<Array as="points">
<mxPoint x="1080" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-265" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-64" target="SgG1xhS9EfBviSQqJXSq-94">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="960" y="490" as="sourcePoint" />
<mxPoint x="1010" y="440" as="targetPoint" />
<Array as="points">
<mxPoint x="1090" y="640" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-266" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-64" target="SgG1xhS9EfBviSQqJXSq-81">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1520" y="490" as="sourcePoint" />
<mxPoint x="1570" y="440" as="targetPoint" />
<Array as="points">
<mxPoint x="1610" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-267" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-64" target="SgG1xhS9EfBviSQqJXSq-110">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1700" y="520" as="sourcePoint" />
<mxPoint x="1750" y="470" as="targetPoint" />
<Array as="points">
<mxPoint x="1640" y="630" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-268" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-67" target="SgG1xhS9EfBviSQqJXSq-50">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1200" y="590" as="sourcePoint" />
<mxPoint x="1250" y="540" as="targetPoint" />
<Array as="points">
<mxPoint x="1230" y="570" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-269" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-213" target="SgG1xhS9EfBviSQqJXSq-64">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1430" y="180" as="sourcePoint" />
<mxPoint x="1480" y="130" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-271" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-187" target="SgG1xhS9EfBviSQqJXSq-64">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1350" y="320" as="sourcePoint" />
<mxPoint x="1400" y="270" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-273" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-210" target="SgG1xhS9EfBviSQqJXSq-136">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="940" y="470" as="sourcePoint" />
<mxPoint x="990" y="420" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-274" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-190" target="SgG1xhS9EfBviSQqJXSq-168">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1890" y="460" as="sourcePoint" />
<mxPoint x="1940" y="410" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-275" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-161" target="SgG1xhS9EfBviSQqJXSq-136">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1100" y="-560" as="sourcePoint" />
<mxPoint x="920" y="-500" as="targetPoint" />
<Array as="points">
<mxPoint x="520" y="30" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-276" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-203" target="SgG1xhS9EfBviSQqJXSq-168">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="2270" y="80" as="sourcePoint" />
<mxPoint x="2320" y="30" as="targetPoint" />
<Array as="points">
<mxPoint x="2200" y="20" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-277" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-158" target="SgG1xhS9EfBviSQqJXSq-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="830" y="-540" as="sourcePoint" />
<mxPoint x="880" y="-590" as="targetPoint" />
<Array as="points">
<mxPoint x="1160" y="-260" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-278" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=1;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-200" target="SgG1xhS9EfBviSQqJXSq-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="1770" y="-410" as="sourcePoint" />
<mxPoint x="1820" y="-460" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="SgG1xhS9EfBviSQqJXSq-279" value="" style="edgeStyle=elbowEdgeStyle;elbow=horizontal;endArrow=classic;html=1;curved=0;rounded=0;endSize=8;startSize=8;fontSize=12;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="SgG1xhS9EfBviSQqJXSq-226" target="SgG1xhS9EfBviSQqJXSq-1">
<mxGeometry width="50" height="50" relative="1" as="geometry">
<mxPoint x="940" y="-450" as="sourcePoint" />
<mxPoint x="990" y="-500" as="targetPoint" />
<Array as="points">
<mxPoint x="1160" y="-430" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>