66 lines
1.3 KiB
Markdown
66 lines
1.3 KiB
Markdown
# Database Schema
|
|
|
|
This document visualizes the SaveInMed database schema using Mermaid.
|
|
|
|
```mermaid
|
|
erDiagram
|
|
%% Entities
|
|
COMPANY {
|
|
int id pk
|
|
string name
|
|
enum status "ACTIVE | INACTIVE | SUSPENDED"
|
|
datetime createdAt
|
|
datetime updatedAt
|
|
}
|
|
|
|
USER {
|
|
int id pk
|
|
string email uk
|
|
string password
|
|
string name
|
|
enum role "USER | ADMIN"
|
|
int companyId fk
|
|
string refreshToken
|
|
datetime createdAt
|
|
datetime updatedAt
|
|
}
|
|
|
|
PRODUCT {
|
|
int id pk
|
|
string name
|
|
string sku uk
|
|
decimal price "10,2"
|
|
datetime createdAt
|
|
datetime updatedAt
|
|
}
|
|
|
|
INVENTORY_ITEM {
|
|
int id pk
|
|
int productId fk, uk
|
|
int quantity
|
|
datetime updatedAt
|
|
}
|
|
|
|
ORDER {
|
|
int id pk
|
|
int buyerId fk
|
|
int productId fk
|
|
int quantity
|
|
decimal total "12,2"
|
|
datetime createdAt
|
|
}
|
|
|
|
SYSTEM_SETTINGS {
|
|
string key pk
|
|
string value
|
|
string category "default: GENERAL"
|
|
boolean isSecure "default: false"
|
|
datetime updatedAt
|
|
}
|
|
|
|
%% Relationships
|
|
COMPANY ||--|{ USER : "has"
|
|
USER ||--|{ ORDER : "places"
|
|
PRODUCT ||--|| INVENTORY_ITEM : "has stock"
|
|
PRODUCT ||--|{ ORDER : "included in"
|
|
```
|