Co-authored-by: ArtemFilin1990 <221041513+ArtemFilin1990@users.noreply.github.com>
64 lines
2.4 KiB
SQL
64 lines
2.4 KiB
SQL
-- Инициализация базы данных для каталога подшипников
|
|
-- Placeholder для SQL из bearing-api/sql/init_catalog.sql
|
|
|
|
-- Создание основных таблиц
|
|
|
|
-- Таблица подшипников
|
|
CREATE TABLE IF NOT EXISTS bearings (
|
|
id SERIAL PRIMARY KEY,
|
|
designation VARCHAR(100) NOT NULL UNIQUE,
|
|
bearing_type VARCHAR(50),
|
|
inner_diameter DECIMAL(10, 3),
|
|
outer_diameter DECIMAL(10, 3),
|
|
width DECIMAL(10, 3),
|
|
manufacturer VARCHAR(100),
|
|
standard VARCHAR(20),
|
|
dynamic_capacity DECIMAL(10, 3),
|
|
static_capacity DECIMAL(10, 3),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Таблица аналогов
|
|
CREATE TABLE IF NOT EXISTS analogs (
|
|
id SERIAL PRIMARY KEY,
|
|
original_designation VARCHAR(100) NOT NULL,
|
|
analog_designation VARCHAR(100) NOT NULL,
|
|
manufacturer VARCHAR(100),
|
|
standard VARCHAR(20),
|
|
compatibility DECIMAL(3, 2),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
UNIQUE(original_designation, analog_designation)
|
|
);
|
|
|
|
-- Таблица производителей
|
|
CREATE TABLE IF NOT EXISTS manufacturers (
|
|
id SERIAL PRIMARY KEY,
|
|
name VARCHAR(100) NOT NULL UNIQUE,
|
|
country VARCHAR(100),
|
|
website VARCHAR(255),
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Таблица стандартов
|
|
CREATE TABLE IF NOT EXISTS standards (
|
|
id SERIAL PRIMARY KEY,
|
|
code VARCHAR(20) NOT NULL UNIQUE,
|
|
name VARCHAR(255),
|
|
description TEXT,
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
|
|
);
|
|
|
|
-- Индексы для оптимизации поиска
|
|
CREATE INDEX IF NOT EXISTS idx_bearings_designation ON bearings(designation);
|
|
CREATE INDEX IF NOT EXISTS idx_bearings_type ON bearings(bearing_type);
|
|
CREATE INDEX IF NOT EXISTS idx_bearings_manufacturer ON bearings(manufacturer);
|
|
CREATE INDEX IF NOT EXISTS idx_analogs_original ON analogs(original_designation);
|
|
CREATE INDEX IF NOT EXISTS idx_analogs_analog ON analogs(analog_designation);
|
|
|
|
-- Комментарии к таблицам
|
|
COMMENT ON TABLE bearings IS 'Каталог подшипников';
|
|
COMMENT ON TABLE analogs IS 'Таблица аналогов подшипников';
|
|
COMMENT ON TABLE manufacturers IS 'Производители подшипников';
|
|
COMMENT ON TABLE standards IS 'Стандарты (ГОСТ, ISO, DIN и др.)';
|