fix structure

This commit is contained in:
Jannis 2025-02-19 19:54:56 +01:00
parent 3cc4ae5699
commit a7e1a41de4
31 changed files with 102 additions and 13 deletions

Binary file not shown.

After

Width:  |  Height:  |  Size: 238 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 127 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 101 KiB

288
KN02/db.drawio Normal file
View file

@ -0,0 +1,288 @@
<mxfile host="app.diagrams.net" agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10.15; rv:135.0) Gecko/20100101 Firefox/135.0" version="26.0.14">
<diagram name="Seite-1" id="cBTbvHJHdlLuG1iU_9py">
<mxGraphModel dx="1761" dy="704" 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="0" />
<mxCell id="1" parent="0" />
<mxCell id="p0t2gclCdJraA5zFe3de-1" value="Achievement Collection" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="-20" y="480" width="1536" height="387" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-2" value="Achievement Dokument" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="555" y="46" width="230" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-3" value="_id: ObjectId" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="43" y="175" width="155" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-4" value="name: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="248" y="175" width="150" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-5" value="beschreibung: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="448" y="175" width="206" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-6" value="punktewert: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="704" y="175" width="173" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-7" value="schwierigkeit: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="927" y="175" width="206" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-8" value="errungen_von: Array" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="1183" y="175" width="207" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-9" value="spieler_id: ObjectId" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="614" y="304" width="203" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-10" value="erreicht_am: date" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-1" vertex="1">
<mxGeometry x="1314" y="304" width="191" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-11" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.74;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-2" target="p0t2gclCdJraA5zFe3de-3" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-12" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.89;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-2" target="p0t2gclCdJraA5zFe3de-4" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="323" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-13" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.28;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-2" target="p0t2gclCdJraA5zFe3de-5" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="551" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-14" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.72;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-2" target="p0t2gclCdJraA5zFe3de-6" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="790" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-15" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.87;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-2" target="p0t2gclCdJraA5zFe3de-7" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1030" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-16" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.71;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-2" target="p0t2gclCdJraA5zFe3de-8" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1286" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-17" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.71;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-8" target="p0t2gclCdJraA5zFe3de-9" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="715" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-18" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.75;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-1" source="p0t2gclCdJraA5zFe3de-8" target="p0t2gclCdJraA5zFe3de-10" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1409" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-19" value="Spiel Collection" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="1566" y="545" width="954" height="258" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-20" value="Spiel Dokument" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-19" vertex="1">
<mxGeometry x="362" y="46" width="172" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-21" value="_id: ObjectId" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-19" vertex="1">
<mxGeometry x="43" y="175" width="155" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-22" value="spielname: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-19" vertex="1">
<mxGeometry x="248" y="175" width="184" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-23" value="genre: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-19" vertex="1">
<mxGeometry x="481" y="175" width="152" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-24" value="schwierigkeitsgrad: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-19" vertex="1">
<mxGeometry x="683" y="175" width="244" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-25" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.8;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-19" source="p0t2gclCdJraA5zFe3de-20" target="p0t2gclCdJraA5zFe3de-21" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-26" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.24;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-19" source="p0t2gclCdJraA5zFe3de-20" target="p0t2gclCdJraA5zFe3de-22" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="339" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-27" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.77;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-19" source="p0t2gclCdJraA5zFe3de-20" target="p0t2gclCdJraA5zFe3de-23" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="557" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-28" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.78;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-19" source="p0t2gclCdJraA5zFe3de-20" target="p0t2gclCdJraA5zFe3de-24" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="805" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-29" value="Spieler Collection" style="whiteSpace=wrap;strokeWidth=2;verticalAlign=top;" parent="1" vertex="1">
<mxGeometry x="2570" y="480" width="2011" height="387" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-30" value="Spieler Dokument" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="376" y="46" width="187" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-31" value="_id: ObjectId" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="43" y="175" width="155" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-32" value="username: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="248" y="175" width="180" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-33" value="email: string" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="478" y="175" width="151" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-34" value="registrierungsdatum: date" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="679" y="175" width="247" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-35" value="gesamtpunktzahl: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="976" y="175" width="212" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-36" value="rang: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="1238" y="175" width="122" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-37" value="spielstatistiken: Array" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="1409" y="175" width="217" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-38" value="spiel_id: ObjectId" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="424" y="304" width="188" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-39" value="punktzahl: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="662" y="304" width="161" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-40" value="siege: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="873" y="304" width="127" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-41" value="niederlagen: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="1074" y="304" width="175" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-42" value="k_d_ratio: float" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="1299" y="304" width="173" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-43" value="spielzeit_minuten: int" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="1521" y="304" width="219" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-44" value="letztes_spiel: date" style="whiteSpace=wrap;strokeWidth=2;" parent="p0t2gclCdJraA5zFe3de-29" vertex="1">
<mxGeometry x="1790" y="304" width="194" height="54" as="geometry" />
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-45" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.81;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-31" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="120" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-46" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.2;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-32" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="338" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-47" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.69;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-33" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="553" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-48" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.83;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-34" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="802" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-49" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.67;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-35" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1082" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-50" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.63;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-36" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1299" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-51" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.6;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-30" target="p0t2gclCdJraA5zFe3de-37" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1518" y="137" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-52" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.62;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-38" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="518" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-53" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.66;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-39" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="742" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-54" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.71;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-40" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="936" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-55" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0;exitY=0.85;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-41" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1161" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-56" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.25;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-42" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1385" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-57" value="" style="curved=1;startArrow=none;endArrow=block;exitX=0.72;exitY=0.99;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-43" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1630" y="266" />
</Array>
</mxGeometry>
</mxCell>
<mxCell id="p0t2gclCdJraA5zFe3de-58" value="" style="curved=1;startArrow=none;endArrow=block;exitX=1;exitY=0.84;entryX=0.5;entryY=-0.01;rounded=0;" parent="p0t2gclCdJraA5zFe3de-29" source="p0t2gclCdJraA5zFe3de-37" target="p0t2gclCdJraA5zFe3de-44" edge="1">
<mxGeometry relative="1" as="geometry">
<Array as="points">
<mxPoint x="1887" y="266" />
</Array>
</mxGeometry>
</mxCell>
</root>
</mxGraphModel>
</diagram>
</mxfile>

5
KN02/db.js Normal file
View file

@ -0,0 +1,5 @@
db.createCollection("spieler");
db.createCollection("spiele");
db.createCollection("achievements");

BIN
KN02/db.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 166 KiB

18
KN02/readme.md Normal file
View file

@ -0,0 +1,18 @@
# A: Konzeptionelles Datenmodell
![alt text](<Screenshot 2025-02-18 at 14.56.34.png>)
# B: Logisches Modell für MongoDB
![alt text](<Unbenanntes Diagramm.drawio.png>)
Spiele werden als eigene collection gespeichert, weil sie von vielen Spielern referenziert werden und selten geändert werden. Das vermeidet auch duplikate.
Achievements werden häufig nach allen Spielern gefiltert, die sie erreicht haben.
"errungen_von" speichert, welche Spieler ein Achievement erreicht haben.
# C: Anwendung des Schemas in MongoDB
[db.js](db.js)