Diagrama 5: Modelo de Datos Simplificado (Relaciones Clave)
Nota: Este diagrama ER muestra las relaciones principales entre Customer, Order, Product, Provider, Commission y OrderLiquidation. Incluye las nuevas tablas y extensiones propuestas.
erDiagram
Customer ||--o{ Order : "realiza"
Customer }o--|| CustomerCategory : "pertenece a"
CustomerCategory {
int id PK
string name
decimal handlingPercentage
decimal profitMarginPercentage
decimal baseShippingPrice
}
Order ||--o{ OrderProduct : "contiene"
Order ||--o{ Package : "tiene"
Order ||--o| Invoice : "genera"
Order ||--o| DirectSale : "puede ser"
Order ||--o| OrderLiquidation : "genera"
Order }o--|| OrderType : "es tipo"
OrderType {
int id PK
string name
int initialOrderStatusId
}
OrderProduct }o--|| AgencyProduct : "referencia"
AgencyProduct }o--|| Product : "es"
AgencyProduct }o--|| Agency : "en almacen"
Product }o--o| Provider : "suministrado por"
Provider ||--o{ ProviderShippingRate : "tiene tarifas"
Provider {
int id PK
string name
enum providerType
enum deliveryType
boolean isExternalMarketplace
}
ProviderShippingRate {
int id PK
int providerId FK
int provinceId FK
decimal rate
enum modality
}
ProviderShippingRate }o--o| Province : "para"
Invoice ||--o{ Payment : "recibe"
Order ||--o{ Commission : "genera"
Commission }o--|| Customer : "para afiliado"
Commission }o--o| Coupon : "mediante"
Commission {
int id PK
decimal commissionAmount
decimal commissionPercentage
enum status
}
OrderLiquidation {
int id PK
decimal providerCost
decimal shippingCost
decimal totalRevenue
decimal profitAmount
decimal commissionAmount
}
Customer ||--o{ CouponCustomer : "tiene"
CouponCustomer }o--|| Coupon : "usa"