bsfe_server/schema.drawio

152 lines
18 KiB
Plaintext

<mxfile host="Electron" modified="2024-10-27T00:28:58.581Z" agent="Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) draw.io/22.0.2 Chrome/114.0.5735.289 Electron/25.8.4 Safari/537.36" etag="BWJdj1JyoSHdudScOorK" version="22.0.2" type="device">
<diagram id="C5RBs43oDa-KdzZeNtuy" name="Page-1">
<mxGraphModel dx="1674" dy="838" grid="1" gridSize="10" guides="1" tooltips="1" connect="1" arrows="1" fold="1" page="1" pageScale="1" pageWidth="1654" pageHeight="1169" math="0" shadow="0">
<root>
<mxCell id="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="WIyWlLk6GJQsqaUBKTNV-1" parent="WIyWlLk6GJQsqaUBKTNV-0" />
<mxCell id="JJCkPNM4InE_l2XlKl3H-0" value="Users" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry y="280" width="250" height="150" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-1" value="ID SERIAL PRIMARY_KEY" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-0" vertex="1">
<mxGeometry y="30" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-2" value="username VARCHAR(32)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-0" vertex="1">
<mxGeometry y="60" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-3" value="password CHAR(60)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-0" vertex="1">
<mxGeometry y="90" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-16" value="groups INT[]" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-0" vertex="1">
<mxGeometry y="120" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-4" value="Abstract_products" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="870" y="110" width="250" height="300" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-5" value="ID SERIAL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="30" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-20" value="group_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="60" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="4Zi9I1GNT6whHIKbPsLc-6" value="local_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="90" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-19" value="barcode CHAR(13)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="120" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-6" value="name VARCHAR(128)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="150" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-8" value="net_weight REAL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="180" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-9" value="image_filename CHAR(32)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="210" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-10" value="category INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="240" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-11" value="unit INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-4" vertex="1">
<mxGeometry y="270" width="250" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-12" value="Groups" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="350" y="470" width="160" height="150" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-13" value="ID SERIAL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-12" vertex="1">
<mxGeometry y="30" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-14" value="name VARCHAR(64)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-12" vertex="1">
<mxGeometry y="60" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-15" value="admin_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-12" vertex="1">
<mxGeometry y="90" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-36" value="password VARCHAR(64)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-12" vertex="1">
<mxGeometry y="120" width="160" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-17" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="JJCkPNM4InE_l2XlKl3H-1" target="JJCkPNM4InE_l2XlKl3H-15" edge="1">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="400" y="510" as="sourcePoint" />
<mxPoint x="500" y="410" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-18" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERmany;startArrow=ERmany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="JJCkPNM4InE_l2XlKl3H-16" target="JJCkPNM4InE_l2XlKl3H-13" edge="1">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="330" y="530" as="sourcePoint" />
<mxPoint x="430" y="430" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-21" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="JJCkPNM4InE_l2XlKl3H-13" target="JJCkPNM4InE_l2XlKl3H-20" edge="1">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="400" y="620" as="sourcePoint" />
<mxPoint x="500" y="520" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-22" value="Categories" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="577" y="670" width="140" height="150" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-23" value="ID SERIAL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-22" vertex="1">
<mxGeometry y="30" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-25" value="group_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-22" vertex="1">
<mxGeometry y="60" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="dD14LHGxQFpW1-KiWxnH-1" value="local_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="JJCkPNM4InE_l2XlKl3H-22">
<mxGeometry y="90" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-24" value="name VARCHAR(64)" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-22" vertex="1">
<mxGeometry y="120" width="140" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-26" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="JJCkPNM4InE_l2XlKl3H-13" target="JJCkPNM4InE_l2XlKl3H-25" edge="1">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="340" y="600" as="sourcePoint" />
<mxPoint x="440" y="500" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-27" value="Products&lt;br&gt;" style="swimlane;fontStyle=0;childLayout=stackLayout;horizontal=1;startSize=30;horizontalStack=0;resizeParent=1;resizeParentMax=0;resizeLast=0;collapsible=1;marginBottom=0;whiteSpace=wrap;html=1;" parent="WIyWlLk6GJQsqaUBKTNV-1" vertex="1">
<mxGeometry x="1200" y="450" width="190" height="240" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-28" value="ID SERIAL" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-27" vertex="1">
<mxGeometry y="30" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-29" value="group_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-27" vertex="1">
<mxGeometry y="60" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="dD14LHGxQFpW1-KiWxnH-0" value="local_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" vertex="1" parent="JJCkPNM4InE_l2XlKl3H-27">
<mxGeometry y="90" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-30" value="abstract_product_id INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-27" vertex="1">
<mxGeometry y="120" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-32" value="amount INT" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-27" vertex="1">
<mxGeometry y="150" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-33" value="date_of_production DATE" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-27" vertex="1">
<mxGeometry y="180" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-34" value="expiry_date DATE" style="text;strokeColor=none;fillColor=none;align=left;verticalAlign=middle;spacingLeft=4;spacingRight=4;overflow=hidden;points=[[0,0.5],[1,0.5]];portConstraint=eastwest;rotatable=0;whiteSpace=wrap;html=1;" parent="JJCkPNM4InE_l2XlKl3H-27" vertex="1">
<mxGeometry y="210" width="190" height="30" as="geometry" />
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-31" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="JJCkPNM4InE_l2XlKl3H-13" target="JJCkPNM4InE_l2XlKl3H-29" edge="1">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="660" y="580" as="sourcePoint" />
<mxPoint x="760" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="JJCkPNM4InE_l2XlKl3H-35" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERoneToMany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" parent="WIyWlLk6GJQsqaUBKTNV-1" source="4Zi9I1GNT6whHIKbPsLc-6" target="JJCkPNM4InE_l2XlKl3H-30" edge="1">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="980" y="340" as="sourcePoint" />
<mxPoint x="1080" y="240" as="targetPoint" />
</mxGeometry>
</mxCell>
<mxCell id="dD14LHGxQFpW1-KiWxnH-2" value="" style="edgeStyle=entityRelationEdgeStyle;fontSize=12;html=1;endArrow=ERmany;startArrow=ERmany;rounded=0;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;" edge="1" parent="WIyWlLk6GJQsqaUBKTNV-1" source="dD14LHGxQFpW1-KiWxnH-1" target="JJCkPNM4InE_l2XlKl3H-10">
<mxGeometry width="100" height="100" relative="1" as="geometry">
<mxPoint x="830" y="580" as="sourcePoint" />
<mxPoint x="930" y="480" as="targetPoint" />
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>