MyEMS Документация по проектированию базы данных
Данный документ предназначен для программистов и подробно объясняет архитектуру базы данных, структуру таблиц и философию проектирования системы управления энергопотреблением MyEMS.
Содержание
- Архитектура базы данных
- Подробное описание баз данных
- Взаимосвязи потоков данных
- Спецификация проектирования структуры таблиц
Архитектура базы данных
Концепция проектирования
- Разделение данных: Разделение данных на разные базы данных в зависимости от типа и назначения данных, чтобы избежать чрезмерного разрастания одной базы.
- Разделение операций чтения и записи: Исторические данные хранятся в формате временных рядов для обеспечения эффективных запросов.
- Горизонтальное масштабирование: Большие базы данных (
myems_historical_db,myems_energy_db) можно масштабировать независимо. - Унифицированные стандарты: Все базы данных используют одинаковый набор символов и правила сортировки.
Конфигурация базы данных
Все базы данных единообразно используют следующую конфигурацию:
- Набор символов (Character Set):
utf8mb4(поддерживает полный набор символов UTF-8, включая эмодзи) - Правило сортировки (Collation):
utf8mb4_unicode_ci(правило сортировки Unicode) - Движок хранения (Storage Engine): InnoDB (по умолчанию, поддерживает транзакции и внешние ключи)
Соглашения об именовании
- Именование баз данных:
myems_{функция}_db(нижний регистр, разделено подчеркиванием) - Именование таблиц:
tbl_{имя_сущности}(нижний регистр, разделено подчеркиванием) - Именование полей: Нижний регистр, разделено подчеркиванием, например
start_datetime_utc - Именование индексов:
tbl_{имя_таблицы}_index_{порядковый_номер}