-
Notifications
You must be signed in to change notification settings - Fork 0
Модель данных
Для дальнейшего расчета объема памяти, будем считать длину строк n = 150, т.к. строки фигурируют в полях с именем пользователя, логином, паролем, типом события, описанием события, адресом и названием склада, которые не требуют большой длины.
Хранение информации о складе, на котором расположены ячейки. Поля:
- int id_storage (4)
- text Адрес (n)
- text Название (n)
Хранение информации о характеристиках и состоянии ячейки.
- int id_cell (4)
- int id_storage (4)
- int Номер ячейки (4)
- int Номер яруса (4)
- bool Свободна (1)
- datetime Время окончания аренды (8)
- char Размер (1)
Информация об изменении состояния ячейки, например: забронирована, освобождена, обслужена, выявлена неполадка.
- int id_event (4)
- int id_cell (4)
- int id_user (4)
- text Тип события (n)
- text Описание (n)
- datetime Время (8)
Информация о пользователях системы, к которым относятся клиенты сервиса, работники и администрация.
- int id_user (4)
- text ФИО (n)
- int Роль (4)
- text Логин (n)
- text Пароль (n)
- datetime Дата регистрации (8)
- float Задолженность (4)
Рассчитаем размер каждой сущности:
- Склад: 4 + 150*2 = 304 байта
- Ячейка: 4*3 + 2 + 8 = 22 байта
- Событие: 4*3 + 150*2 + 8 = 320 байт
- Пользователь: 4*3 + 150*3 + 8 = 470 байт
Для расчета формулы, определим, что на каждом складе должно быть как минимум:
- 100 ячеек
- каждую ячейку нужно хотя бы раз обслужить, забронировать и освободить => 300 событий
- 3 рабочих, 1 директор склада, 100 клиентов, 1 сис.админ => 105 пользователей
*владелец бизнеса не включен в формулу, т.к. он всегда 1.
Формула, зависящая от количества складов s:
Избыточные поля в модели:
- id_storage в сущности Склад
- id_storage, id_cell в сущности Ячейка
- id_event, id_user в сущности Событие
- id_user в сущности Пользователь
За вычетом избыточных полей, объем коллекции будет составлять:
Отношение между фактическим объемом базы и чистым объемом составляет:
Зависимость избыточности от кол-ва складов можно выразить формулой:
Создание объекта одной сущности не требует создания объектов других сущностей. Поэтому скорость роста модели имеет простую зависимость от каждой сущности.
Ранжировка сущностей по влиянию на скорость роста модели:
- Пользователь (наибольший рост модели)
- Событие
- Склад
- Ячейка (наименьший рост модели)
id_storage | adress | title |
---|---|---|
29031 | г. Санкт-Петербург ул. Кузнецовская д. 16к1 | |
19384 | г. Воронеж ул. Генеральская д. 15 |