Files
rltn/migrations/create_city_objects_table_minimal.sql

44 lines
1.7 KiB
MySQL
Raw Permalink Normal View History

-- Минимальная миграция для создания таблицы city_objects
-- Файл: migrations/create_city_objects_table_minimal.sql
-- Удаляем таблицу если существует (для пересоздания)
DROP TABLE IF EXISTS city_objects CASCADE;
-- Создание таблицы city_objects
CREATE TABLE city_objects (
id SERIAL PRIMARY KEY,
city_id INTEGER NOT NULL,
name VARCHAR(255) NOT NULL DEFAULT '',
model_url VARCHAR(500) NOT NULL,
-- Позиция
pos_x DECIMAL(15, 6) NOT NULL DEFAULT 0,
pos_y DECIMAL(15, 6) NOT NULL DEFAULT 0,
pos_z DECIMAL(15, 6) NOT NULL DEFAULT 0,
-- Поворот (в радианах)
rot_x DECIMAL(15, 6) NOT NULL DEFAULT 0,
rot_y DECIMAL(15, 6) NOT NULL DEFAULT 0,
rot_z DECIMAL(15, 6) NOT NULL DEFAULT 0,
-- Масштаб
scale_x DECIMAL(15, 6) NOT NULL DEFAULT 1,
scale_y DECIMAL(15, 6) NOT NULL DEFAULT 1,
scale_z DECIMAL(15, 6) NOT NULL DEFAULT 1,
-- Дополнительные свойства
organization_id INTEGER NOT NULL DEFAULT 2,
rent DECIMAL(10, 2) NOT NULL DEFAULT 0,
tax DECIMAL(10, 2) NOT NULL DEFAULT 0,
collidable BOOLEAN NOT NULL DEFAULT false,
interior_id INTEGER NOT NULL DEFAULT 101,
textures VARCHAR(500) NOT NULL DEFAULT '-'
);
-- Создание индексов
CREATE INDEX idx_city_objects_city_id ON city_objects(city_id);
CREATE INDEX idx_city_objects_organization_id ON city_objects(organization_id);
CREATE INDEX idx_city_objects_interior_id ON city_objects(interior_id);
CREATE INDEX idx_city_objects_position ON city_objects(pos_x, pos_y, pos_z);
CREATE INDEX idx_city_objects_collidable ON city_objects(collidable);