diagrama_bbdds.drawio 14 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108
  1. <mxfile host="app.diagrams.net">
  2. <diagram name="Data Models" id="gWxjKlz6B-a68IHoGXtU">
  3. <mxGraphModel dx="2398" dy="876" 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">
  4. <root>
  5. <mxCell id="0" />
  6. <mxCell id="1" parent="0" />
  7. <mxCell id="gePvX5wIa_L2-Gd-ft29-1" parent="1" style="swimlane;startSize=40;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="Catalog DB (SQL)" vertex="1">
  8. <mxGeometry height="360" width="500" x="-60" y="20" as="geometry" />
  9. </mxCell>
  10. <mxCell id="gePvX5wIa_L2-Gd-ft29-21" edge="1" parent="gePvX5wIa_L2-Gd-ft29-1" source="gePvX5wIa_L2-Gd-ft29-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-16">
  11. <mxGeometry relative="1" as="geometry" />
  12. </mxCell>
  13. <mxCell id="gePvX5wIa_L2-Gd-ft29-22" edge="1" parent="gePvX5wIa_L2-Gd-ft29-1" source="gePvX5wIa_L2-Gd-ft29-15" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.75;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-17">
  14. <mxGeometry relative="1" as="geometry" />
  15. </mxCell>
  16. <mxCell id="gePvX5wIa_L2-Gd-ft29-15" parent="gePvX5wIa_L2-Gd-ft29-1" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontSize=16;" value="&lt;div style=&quot;box-sizing: border-box; width: 100%; background: rgb(228, 228, 228); padding: 2px;&quot;&gt;&lt;b&gt;ITEM&lt;/b&gt;&lt;/div&gt;&lt;table style=&quot;width: 100%;&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;PK&lt;/b&gt;&lt;/td&gt;&lt;td&gt;id&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;FK&lt;/b&gt;&lt;/td&gt;&lt;td&gt;category_id&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;FK&lt;/b&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;seller_id&lt;br&gt;name&lt;br&gt;description&lt;br&gt;starting_price&lt;br&gt;created_at&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;" vertex="1">
  17. <mxGeometry height="180" width="180" x="30" y="110" as="geometry" />
  18. </mxCell>
  19. <mxCell id="gePvX5wIa_L2-Gd-ft29-16" parent="gePvX5wIa_L2-Gd-ft29-1" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontSize=16;" value="&lt;div style=&quot;box-sizing: border-box; width: 100%; background: rgb(228, 228, 228); padding: 2px;&quot;&gt;&lt;b&gt;CATEGORY&lt;/b&gt;&lt;/div&gt;&lt;table style=&quot;width: 100%;&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;PK&lt;/b&gt;&lt;/td&gt;&lt;td&gt;id&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;name&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;/td&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;" vertex="1">
  20. <mxGeometry height="80" width="180" x="280" y="90" as="geometry" />
  21. </mxCell>
  22. <mxCell id="gePvX5wIa_L2-Gd-ft29-17" parent="gePvX5wIa_L2-Gd-ft29-1" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontSize=16;" value="&lt;div style=&quot;box-sizing: border-box; width: 100%; background: rgb(228, 228, 228); padding: 2px;&quot;&gt;&lt;b&gt;SELLER&lt;/b&gt;&lt;/div&gt;&lt;table style=&quot;width: 100%;&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;PK&lt;/b&gt;&lt;/td&gt;&lt;td&gt;id&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;user_id&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;rating&lt;br&gt;created_at&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;" vertex="1">
  23. <mxGeometry height="120" width="180" x="280" y="210" as="geometry" />
  24. </mxCell>
  25. <mxCell id="gePvX5wIa_L2-Gd-ft29-7" parent="1" style="swimlane;startSize=40;fontSize=16;fillColor=#dae8fc;strokeColor=#6c8ebf;" value="User Service (SQL)" vertex="1">
  26. <mxGeometry height="300" width="310" x="590" y="20" as="geometry" />
  27. </mxCell>
  28. <mxCell id="gePvX5wIa_L2-Gd-ft29-19" parent="gePvX5wIa_L2-Gd-ft29-7" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontSize=16;" value="&lt;div style=&quot;box-sizing: border-box; width: 100%; background: rgb(228, 228, 228); padding: 2px;&quot;&gt;&lt;b&gt;USER&lt;/b&gt;&lt;/div&gt;&lt;table style=&quot;width: 100%;&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;b&gt;PK&lt;/b&gt;&lt;/td&gt;&lt;td&gt;id&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;username&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;email&lt;br&gt;created_at&lt;br&gt;external_id&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;" vertex="1">
  29. <mxGeometry height="180" width="180" x="65" y="80" as="geometry" />
  30. </mxCell>
  31. <mxCell id="gePvX5wIa_L2-Gd-ft29-26" edge="1" parent="1" source="gePvX5wIa_L2-Gd-ft29-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;entryX=0;entryY=0.75;entryDx=0;entryDy=0;strokeWidth=2;exitX=1;exitY=0.5;exitDx=0;exitDy=0;" target="gePvX5wIa_L2-Gd-ft29-19">
  32. <mxGeometry relative="1" as="geometry">
  33. <Array as="points">
  34. <mxPoint x="515" y="640" />
  35. <mxPoint x="515" y="350" />
  36. <mxPoint x="570" y="350" />
  37. <mxPoint x="570" y="235" />
  38. </Array>
  39. <mxPoint x="430" y="610" as="sourcePoint" />
  40. </mxGeometry>
  41. </mxCell>
  42. <mxCell id="gePvX5wIa_L2-Gd-ft29-9" parent="1" style="swimlane;startSize=40;fillColor=#fff2cc;strokeColor=#d6b656;fontSize=16;" value="MongoDB (No-SQL)" vertex="1">
  43. <mxGeometry height="365" width="420" x="-50" y="435" as="geometry" />
  44. </mxCell>
  45. <mxCell id="gePvX5wIa_L2-Gd-ft29-23" parent="gePvX5wIa_L2-Gd-ft29-9" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;" value="&lt;p style=&quot;margin:0px;margin-top:4px;text-align:center;&quot;&gt;&lt;b&gt;&lt;font style=&quot;font-size: 16px;&quot;&gt;BID&lt;/font&gt;&lt;/b&gt;&lt;/p&gt;&lt;hr size=&quot;1&quot; style=&quot;border-style:solid;&quot;&gt;&lt;div style=&quot;height:2px;&quot;&gt;&lt;font face=&quot;Lucida Console&quot; style=&quot;font-size: 16px;&quot;&gt;&amp;nbsp;{&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b style=&quot;&quot;&gt;auctionId&lt;/b&gt;: &quot;uuid&quot;,&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b style=&quot;&quot;&gt;itemId&lt;/b&gt;: &quot;uuid&quot;,&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b style=&quot;&quot;&gt;sellerId&lt;/b&gt;: &quot;uuid&quot;,&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b style=&quot;&quot;&gt;finalPrice&lt;/b&gt;: 250.0,&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b style=&quot;&quot;&gt;winnerUserId&lt;/b&gt;: &quot;uuid&quot;,&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;b style=&quot;&quot;&gt;bids&lt;/b&gt;: [&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;b style=&quot;&quot;&gt;userId&lt;/b&gt;: &quot;u1&quot;, &lt;b style=&quot;&quot;&gt;amount&lt;/b&gt;: 200},&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;b style=&quot;&quot;&gt;userId&lt;/b&gt;: &quot;u2&quot;, &lt;b style=&quot;&quot;&gt;amount&lt;/b&gt;: 250}&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp; &amp;nbsp; &amp;nbsp;]&lt;br style=&quot;padding: 0px; margin: 0px;&quot;&gt;&amp;nbsp;}&lt;/font&gt;&lt;/div&gt;" vertex="1">
  46. <mxGeometry height="270" width="330" x="45" y="70" as="geometry" />
  47. </mxCell>
  48. <mxCell id="gePvX5wIa_L2-Gd-ft29-11" parent="1" style="swimlane;startSize=40;fillColor=#f8cecc;strokeColor=#b85450;fontSize=16;" value="Redis (Key/Value)" vertex="1">
  49. <mxGeometry height="365" width="250" x="620" y="435" as="geometry" />
  50. </mxCell>
  51. <mxCell id="p3nAkC8L9AHW-8_PGBHP-5" parent="gePvX5wIa_L2-Gd-ft29-11" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontSize=16;" value="&lt;div style=&quot;box-sizing: border-box; width: 100%; background: rgb(228, 228, 228); padding: 2px;&quot;&gt;&lt;b&gt;Key: auction:{id}&lt;/b&gt;&lt;/div&gt;&lt;table style=&quot;width: 100%;&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;itemId&lt;br&gt;startTime&lt;br&gt;endTime&lt;br&gt;currentPrice&lt;br&gt;winnerUserId&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;" vertex="1">
  52. <mxGeometry height="130" width="180" x="40" y="70" as="geometry" />
  53. </mxCell>
  54. <mxCell id="p3nAkC8L9AHW-8_PGBHP-6" parent="gePvX5wIa_L2-Gd-ft29-11" style="verticalAlign=top;align=left;overflow=fill;html=1;whiteSpace=wrap;fontSize=16;" value="&lt;div style=&quot;box-sizing: border-box; width: 100%; background: rgb(228, 228, 228); padding: 2px;&quot;&gt;&lt;b&gt;Key: auction:{id}:bids&lt;/b&gt;&lt;/div&gt;&lt;table style=&quot;width: 100%;&quot; cellpadding=&quot;2&quot; cellspacing=&quot;0&quot;&gt;&lt;tbody&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;userId&lt;br&gt;amount&lt;br&gt;timestamp&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;td&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/tbody&gt;&lt;/table&gt;" vertex="1">
  55. <mxGeometry height="90" width="180" x="40" y="225" as="geometry" />
  56. </mxCell>
  57. <mxCell id="gePvX5wIa_L2-Gd-ft29-20" edge="1" parent="1" source="gePvX5wIa_L2-Gd-ft29-17" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-19">
  58. <mxGeometry relative="1" as="geometry" />
  59. </mxCell>
  60. <mxCell id="gePvX5wIa_L2-Gd-ft29-27" edge="1" parent="1" source="p3nAkC8L9AHW-8_PGBHP-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-15">
  61. <mxGeometry relative="1" as="geometry">
  62. <Array as="points">
  63. <mxPoint x="450" y="570" />
  64. <mxPoint x="450" y="420" />
  65. <mxPoint x="105" y="420" />
  66. </Array>
  67. <mxPoint x="665.0000000000005" y="535" as="sourcePoint" />
  68. </mxGeometry>
  69. </mxCell>
  70. <mxCell id="p3nAkC8L9AHW-8_PGBHP-2" edge="1" parent="1" source="gePvX5wIa_L2-Gd-ft29-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.25;exitDx=0;exitDy=0;entryX=0;entryY=0.5;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-15">
  71. <mxGeometry relative="1" as="geometry">
  72. <Array as="points">
  73. <mxPoint x="-90" y="573" />
  74. <mxPoint x="-90" y="220" />
  75. </Array>
  76. </mxGeometry>
  77. </mxCell>
  78. <mxCell id="p3nAkC8L9AHW-8_PGBHP-4" edge="1" parent="1" source="gePvX5wIa_L2-Gd-ft29-23" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.25;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-17">
  79. <mxGeometry relative="1" as="geometry">
  80. <Array as="points">
  81. <mxPoint x="400" y="573" />
  82. <mxPoint x="400" y="400" />
  83. <mxPoint x="355" y="400" />
  84. </Array>
  85. </mxGeometry>
  86. </mxCell>
  87. <mxCell id="p3nAkC8L9AHW-8_PGBHP-9" edge="1" parent="1" source="p3nAkC8L9AHW-8_PGBHP-6" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=0;exitY=0.5;exitDx=0;exitDy=0;entryX=0.25;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-19">
  88. <mxGeometry relative="1" as="geometry">
  89. <Array as="points">
  90. <mxPoint x="590" y="705" />
  91. <mxPoint x="590" y="360" />
  92. <mxPoint x="700" y="360" />
  93. </Array>
  94. </mxGeometry>
  95. </mxCell>
  96. <mxCell id="p3nAkC8L9AHW-8_PGBHP-11" edge="1" parent="1" source="p3nAkC8L9AHW-8_PGBHP-5" style="edgeStyle=orthogonalEdgeStyle;rounded=0;orthogonalLoop=1;jettySize=auto;html=1;exitX=1;exitY=0.5;exitDx=0;exitDy=0;entryX=0.75;entryY=1;entryDx=0;entryDy=0;strokeWidth=2;" target="gePvX5wIa_L2-Gd-ft29-19">
  97. <mxGeometry relative="1" as="geometry">
  98. <Array as="points">
  99. <mxPoint x="890" y="570" />
  100. <mxPoint x="890" y="360" />
  101. <mxPoint x="790" y="360" />
  102. </Array>
  103. </mxGeometry>
  104. </mxCell>
  105. </root>
  106. </mxGraphModel>
  107. </diagram>
  108. </mxfile>