source: docs/P1-ConceptualModel/ep-diagram.md@ fe28254

main
Last change on this file since fe28254 was b715712, checked in by Stefan <trsunovstefan@…>, 8 weeks ago

Add the server side and configuration

  • Property mode set to 100644
File size: 5.0 KB
RevLine 
[d8ce4e2]1Ентитети
2
3User – ентитет кој чува информации за корисниците на платформата
4
5id (uuid)
6
7username (varchar(50), not null, unique)
8
9email (varchar(255), not null, unique)
10
11password_hash (varchar(255), not null)
12
13full_name (varchar(200))
14
15created_at (timestamptz)
16
17updated_at (timestamptz)
18
19
20Crypto – ентитет кој ги чува податоците за криптовалутите со кои се тргува
21
22id (uuid)
23
24symbol (varchar(20), not null, unique)
25
26name (varchar(255))
27
28created_at (timestamptz)
29
30
31
32Market – ентитет кој ги дефинира пазарите (парови криптовалути и валути за котација(BTCUSDT, ADAUSDT, ADABTC))
33
34id (uuid)
35
36crypto_id (uuid, not null, FK → Crypto.id)
37
38quote_currency (char(3), not null) ADA, USDT, BTC, USDT
39
40is_active (boolean)
41
42created_at (timestamptz)
43
44
45
46Holding – ентитет кој ги чува позициите на корисниците во криптовалути
47
48id (uuid)
49
50user_id (uuid, not null, FK → User.id)
51
52crypto_id (uuid, not null, FK → Crypto.id)
53
54quantity (numeric(20,4), not null)
55
56avg_price (numeric(18,6))
57
58created_at (timestamptz)
59
60updated_at (timestamptz)
61
62
63
64Order – ентитет кој ги чува нарачките за купување/продавање
65
66id (uuid)
67
68user_id (uuid, not null, FK → User.id)
69
70market_id (uuid, not null, FK → Market.id)
71
72side (varchar(4), not null) — типично “buy” или “sell”
73
74type (varchar(20), not null) — тип на нарачка, пример “limit”, “market”
75
76status (varchar(20), not null) — статус на нарачка (open, executed, cancelled)
77
78quantity (numeric(20,4), not null)
79
80price (numeric(18,6))
81
82placed_at (timestamptz)
83
84executed_at (timestamptz)
85
86
87
88Transaction – ентитет кој ја следи финансиската активност на корисниците (депозити, купувања, продавања, провизии)
89
90id (uuid)
91
92user_id (uuid, not null, FK → User.id)
93
94type (varchar(50), not null) — пример: “deposit”, “buy”, “sell”, “fee”
95
96amount (numeric(18,4), not null)
97
98currency (char(3), not null)
99
100related_order (uuid, FK → Order.id)
101
102created_at (timestamptz)
103
104description (text)
105
106
107
108Market_Trade – ентитет кој ги евидентира извршените пазарни зделки кои ја формираат цената
109
110id (bigserial)
111
112market_id (uuid, not null, FK → Market.id)
113
114executed_at (timestamptz, not null)
115
116price (numeric(18,6), not null)
117
118quantity (numeric(20,6), not null)
119
120side (varchar(4))
121
122source (varchar(50))
123
124Market_Candle – ентитет кој ги агрегира податоците за цените и волуменот во временски интервали (целови)
125
126id (bigserial)
127
128market_id (uuid, not null, FK → Market.id)
129
130timeframe (varchar(5), not null) — пример: “1m”, “5m”, “1h”
131
132open (numeric(18,6), not null)
133
134high (numeric(18,6), not null)
135
136low (numeric(18,6), not null)
137
138close (numeric(18,6), not null)
139
140volume (numeric(20,6), not null)
141
142candle_time (timestamptz, not null)
143
144Watchlist – ентитет кој ги чува листите за следење на корисниците
145
146id (uuid)
147
148user_id (uuid, not null, FK → User.id)
149
150name (varchar(100))
151
152created_at (timestamptz)
153
154Watchlist_Item – ентитет кој ги чува криптовалутите кои се ставени во некоја листа за следење
155
156id (uuid)
157
158watchlist_id (uuid, not null, FK → Watchlist.id)
159
160crypto_id (uuid, not null, FK → Crypto.id)
161
162added_at (timestamptz)
163
164Релации
165
166User – Holding (1:N)
167Еден корисник може да има повеќе позиции во различни криптовалути.
168
169Crypto – Holding (1:N)
170Една криптовалута може да се држи од повеќе корисници.
171
172User – Order (1:N)
173Еден корисник може да има повеќе нарачки.
174
175Market – Order (1:N)
176Еден пазар има повеќе нарачки.
177
178User – Transaction (1:N)
179Еден корисник има повеќе трансакции.
180
181Order – Transaction (0..1 : N)
182Трансакцијата може да биде поврзана со една нарачка (пример купување/продажба).
183
184Market – Market_Trade (1:N)
185Еден пазар има многу извршени зделки.
186
187Market – Market_Candle (1:N)
188Еден пазар има многу временски агрегирани податоци.
189
190User – Watchlist (1:N)
191Еден корисник може да има повеќе листи за следење.
192
193Watchlist – Watchlist_Item (1:N)
194Една листа може да содржи повеќе криптовалути.
195
196Crypto – Watchlist_Item (1:N)
197Една криптовалута може да биде во повеќе листи за следење.
Note: See TracBrowser for help on using the repository browser.