SQL структура базы данных для типа данных временных рядов - PullRequest
0 голосов
/ 22 апреля 2020

Интересно, может ли кто-то потратить минуту своего рабочего дня, чтобы высказать свое мнение о структуре моей базы данных?

У меня есть данные датчиков (например, температура, влажность ...) в формате временных рядов (10 Гц) ) которые устанавливаются на разных этажах разных домов разных городов. Итак, давайте скажем что-то вроде этого:

* Город Париж -> Дом A -> Этаж 1 -> Датчик влажности и температуры -> CSV-файл с временными рядами для часов, дней, лет

Город Париж -> Дом B -> Этаж 3 -> Датчик влажности -> CSV-файл с временными рядами для часов, дней, лет *

Так что теперь я хотел бы ответить на эти вопросы : 1- Каков был бы наиболее эффективный способ хранения данных в базе данных A sql? 2- Имеет ли смысл хранить данные меток времени в базе данных sql, но данные датчиков в файле CSV, а затем связывать их с базой данных sql? 3- Как насчет масштабируемости и возможности добавления новых датчиков?

Большое спасибо за вашу помощь и предложение заранее,

1 Ответ

1 голос
/ 22 апреля 2020

По крайней мере, вы не должны сохранять CSV в базе данных как VARCHAR или текст сразу. Вы должны разбивать все на мелкие детали, насколько это возможно. Я предлагаю сначала создать такую ​​таблицу

CREATE TABALE measurements (measurement_id INT PRIMARY KEY, floor_id INT, type VARCHAR(50), value FLOAT)

Затем создать таблицу для этажей

CREATE TABLE floors (floor_id INT PRIMARY KEY, building_id INT, floor_name INT)

И хотя бы соединение со зданием

CREATE TABLE buildings (building_id INT PRIMARY KEY, building_name VARCHAR(200), building_city VARCHAR(200))

Вы должны создать внешние ключи от floor.floor_id для sizes.floor_id и от building.building_id до floor.building _id.

Вы можете даже разбить несколько таблиц, чтобы иметь собственные города и / или адреса. один раз, если хотите.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...