Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Записка диплом.docx
Скачиваний:
1
Добавлен:
01.07.2025
Размер:
2.65 Mб
Скачать
    1. Физическая модель

Физическая модель базы данных системы приведена на Рис. 8 Логическая информационная модельРис. 8. В таблицах, содержащих поля из других таблиц как FK, зарегистрированы ограничения, выполняющие автоматическое изменение/удаление записей в случае изменения/удаления связанного FK. Таким образом обеспечивается целостность базы данных при любых изменениях данных и автоматически удаляются лишние записи, которые больше ни к чему не относятся. Например, если будет удалена запись таблицы devices, также автоматически будут удалены все связанные с ней записи таблиц owners, sensors и readings.

Кроме этого для каждой из таблиц создана парная архивная таблица, содержащая все её поля, а также уникальный id и timestamp (на рисунке эти таблицы не показаны). Перед удалением записи любой из основных таблиц срабатывает триггер, который добавляет копию этой записи в парную архивную таблицу. Изменять данные в архивных таблицах может только суперпользователь. За счёт этого механизма обеспечивается сохранность данных в случае любых действий, произведённых в веб-интерфейсе: все удалённые данные при необходимости можно восстановить из архивных таблиц.

Рис. 9 Физическая информационная модель

Таблица 1

Атрибуты сущности «devices»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

IMEI

Varchar(32)

Уникальный идентификатор мобильного устройства

phone

Varchar(32)

Номер телефона устройства

location

Varchar(256)

Местоположение устройства

hidden

Varchar

Флаг, определяющий будет ли устройство отображаться в списке показаний в веб-интерфейсе

В сущности devices создан индекс по полю id.

Таблица 2

Атрибуты сущности «users»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

name

Varchar(128)

Имя пользователя

phone

Varchar(32)

Номер телефона пользователя

mobop

Varchar(32)

Мобильный оператор пользователя

send_interval

Integer(8)

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

В сущности users создан индекс по полю id.

Таблица 3

Атрибуты сущности «owners»

Имя

Тип

Описание

id

Integer(11)

Уникальный идентификатор записи

user_id

Integer(8)

Уникальный идентификатор пользователя

device_id

Integer(8)

Уникальный идентификатор устройства

regular

Boolean

Флаг, определяющий будет ли пользователь получать регулярные уведомления об этом устройстве

alerts

Boolean

Флаг, определяющий будет ли пользователь получать срочные уведомления об этом устройстве

В сущности owners созданы индексы по полям id, user_id, device_id.

Таблица 4

Атрибуты сущности «sensors»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

device_id

Integer(8)

Уникальный идентификатор устройства

number

Integer(8)

Номер сенсора на устройстве

location

Varchar(256)

Местоположение сенсора

lowLimit

Integer(11)

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

highLimit

Integer(11)

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

В сущности sensors созданы индексы по полям id, device_id.

Таблица 5

Атрибуты сущности «readings»

Имя

Тип

Описание

id

Integer(11)

Уникальный идентификатор записи

time

Timestamp

Время получения показания

sensor_id

Integer(8)

Уникальный идентификатор сенсора

temperature

Varchar(256)

Значение температуры

В сущности readings созданы индексы по полям id, sensor_id.

Таблица 6

Атрибуты сущности «sms»

Имя

Тип

Описание

id

Integer(11)

Уникальный идентификатор записи

user_id

Integer(8)

Уникальный идентификатор пользователя

time

Timestamp

Время отправки SMS

text

Varchar(512)

Текст SMS

В сущности sms созданы индексы по полям id, user_id.

Таблица 7

Атрибуты сущности «balance»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

time

Timestamp

Время получения данных о балансе

device_id

Integer(8)

Уникальный идентификатор устройства

value

Integer(11)

Значение баланса

В сущности balance созданы индексы по полям id, device_id.

Таблица 8

Атрибуты сущности «errortypes»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

description

Varchar(256)

Описание типа ошибки

В сущности errortypes создан индекс по полю id.

Таблица 9

Атрибуты сущности «errors_devices»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

time

Timestamp

Время возникновения ошибки

dev_id

Integer(8)

Уникальный идентификатор устройства

err_id

Integer(8)

Уникальный идентификатор типа ошибки

comment

Varchar(1024)

Комментарий к ошибке

В сущности errors_devices созданы индексы по полям id, dev_id, err_id.

Таблица 10

Атрибуты сущности «errors»

Имя

Тип

Описание

id

Integer(8)

Уникальный идентификатор записи

time

Timestamp

Время возникновения ошибки

err_id

Integer(8)

Уникальный идентификатор типа ошибки

comment

Varchar(1024)

Комментарий к ошибке

В сущности errors созданы индексы по полям id, err_id.