50 lines
1.8 KiB
SQL
50 lines
1.8 KiB
SQL
-- ============================================================================
|
|
-- Schema: trading
|
|
-- Table: symbols
|
|
-- Description: Catálogo de símbolos/instrumentos financieros operables
|
|
-- Dependencies: None
|
|
-- ============================================================================
|
|
|
|
CREATE TABLE trading.symbols (
|
|
id UUID PRIMARY KEY DEFAULT gen_random_uuid(),
|
|
|
|
-- Identificación
|
|
symbol VARCHAR(20) NOT NULL UNIQUE, -- BTC/USDT, EUR/USD
|
|
name VARCHAR(100) NOT NULL,
|
|
base_asset VARCHAR(10) NOT NULL, -- BTC, EUR
|
|
quote_asset VARCHAR(10) NOT NULL, -- USDT, USD
|
|
|
|
-- Tipo
|
|
asset_class VARCHAR(50) NOT NULL, -- crypto, forex, stocks
|
|
exchange VARCHAR(50), -- binance, coinbase
|
|
|
|
-- Precisión
|
|
price_precision INTEGER NOT NULL DEFAULT 8,
|
|
quantity_precision INTEGER NOT NULL DEFAULT 8,
|
|
|
|
-- Límites
|
|
min_quantity DECIMAL(20,8),
|
|
max_quantity DECIMAL(20,8),
|
|
min_notional DECIMAL(20,8),
|
|
|
|
-- Estado
|
|
is_active BOOLEAN DEFAULT true,
|
|
is_tradeable BOOLEAN DEFAULT true,
|
|
|
|
-- Timestamps
|
|
created_at TIMESTAMPTZ NOT NULL DEFAULT NOW(),
|
|
updated_at TIMESTAMPTZ NOT NULL DEFAULT NOW()
|
|
);
|
|
|
|
-- Índices
|
|
CREATE INDEX idx_symbols_symbol ON trading.symbols(symbol);
|
|
CREATE INDEX idx_symbols_active ON trading.symbols(is_active) WHERE is_active = true;
|
|
CREATE INDEX idx_symbols_asset_class ON trading.symbols(asset_class);
|
|
CREATE INDEX idx_symbols_exchange ON trading.symbols(exchange);
|
|
|
|
-- Comentarios
|
|
COMMENT ON TABLE trading.symbols IS 'Catálogo de símbolos/instrumentos financieros operables';
|
|
COMMENT ON COLUMN trading.symbols.symbol IS 'Símbolo del instrumento (e.g., BTC/USDT)';
|
|
COMMENT ON COLUMN trading.symbols.asset_class IS 'Clase de activo: crypto, forex, stocks, commodities';
|
|
COMMENT ON COLUMN trading.symbols.is_tradeable IS 'Indica si el símbolo está disponible para trading';
|