Browse Source

ДЗ №1 правки

Vsevolod Levitan 2 months ago
parent
commit
7517023cd2
2 changed files with 22 additions and 3 deletions
  1. 3 3
      homework/1.sql
  2. 19 0
      homework/init.sql

+ 3 - 3
homework/1.sql

@@ -4,7 +4,7 @@ begin;
 create table ranks (id serial primary key, name varchar(32));
 
 -- Создаем таблицу пользователей
-create table users (id uuid primary key default gen_random_uuid(), name varchar(64), rank_id integer);
+create table users (id serial primary key, name varchar(64), rank_id integer);
 
 -- Привязываем users(rank_id) -> ranks(id)
 alter table users add foreign key(rank_id) references ranks(id);
@@ -31,9 +31,9 @@ insert into ranks(name) values ('Генерал полковник');
 insert into ranks(name) values ('Генерал армии');
 insert into ranks(name) values ('Маршал России');
 
--- Обновляем username(varchar) -> user_id(uuid) в measurement_batch
+-- Обновляем username(varchar) -> user_id(integer) в measurement_batch
 alter table measurement_batch rename column username to user_id;
-alter table measurement_batch alter column user_id type uuid using null;
+alter table measurement_batch alter column user_id type integer using null;
 
 -- Привязываем measurement_batch(user_id) -> users(id)
 alter table measurement_batch add foreign key(user_id) references users(id);

+ 19 - 0
homework/init.sql

@@ -0,0 +1,19 @@
+begin;
+
+-- Создаем таблицу measurement_batch
+create table measurement_batch(id serial primary key, start_period timestamp, username varchar(64), pos_x numeric, pos_y numeric);
+-- Создаем таблицу measurement_types
+create table measurement_types (id serial primary key, name varchar(64));
+-- Создаем таблицу measurement_params
+create table measurement_params(id serial primary key, measurement_type_id integer references measurement_types(id), measurement_batch_id integer references measurement_batch(id), height numeric, temperature numeric, pressure numeric, wind_speed numeric, wind_direction numeric, bullet_speed numeric);
+-- Добавляем тестовые типы измерений
+insert into measurement_types(name) values ('ДМК');
+insert into measurement_types(name) values ('РУЖЬЕ');
+-- Добавляем тестовые измерения
+insert into measurement_batch(start_period, username, pos_x, pos_y) values(now(), 'test', 69, 42);
+-- Добавляем тестовые данные замеров
+insert into measurement_params(measurement_type_id, measurement_batch_id, height, temperature, pressure, wind_speed, wind_direction, bullet_speed) values (1, 1, 100, 15, 750, 0, 0, 0);
+
+commit;
+
+select mtypes.name, batch.start_period, batch.username, batch.pos_x, batch.pos_y, params.* from measurement_params params join measurement_batch batch on params.measurement_batch_id = batch.id join measurement_types mtypes on params.measurement_type_id = mtypes.id;