Анализ и расширение структуры таблиц #12

Closed
opened 2026-05-02 16:12:56 +03:00 by aleksey · 0 comments
Owner

Этап 0. Анализ и расширение структуры таблиц

Цель: зафиксировать окончательную схему записей (records.hrl), добавив необходимые поля для пользователей, календарей и других сущностей, чтобы избежать частых миграций в будущем и сразу заложить индексы для эффективного поиска.

Шаги:

  1. Сбор требований:
    • Провести опрос команды (фронтенд, мобильные разработчики, администраторы) для выявления всех необходимых полей.
    • Примерный перечень новых полей:
      • user / admin: nickname (уникальное короткое имя), avatar_url, timezone, language, social_links.
      • calendar: title, short_name (уникальный идентификатор для API), category (enum), color, description.
      • event: location, recurrence_exceptions, attachments.
      • booking: notes, reminder_sent.
      • review: edited_at.
  2. Обновление records.hrl:
    • Добавить поля в конец каждой записи со значениями по умолчанию (undefined, [], <<"">).
    • Убедиться, что существующий код, использующий #record{} целиком или частичные паттерны, не сломается.
  3. Анализ запросов:
    • Выявить места в коде, где выполняются mnesia:match_object или select с шаблонами, содержащими конкретные поля. При необходимости обновить шаблоны для учёта новых полей (обычно не требуется, если поля добавляются в конец).
  4. Определение дополнительных индексов:
    • На основе будущих поисковых запросов определить, какие новые поля должны быть проиндексированы:
      • user.nickname – уникальный индекс.
      • calendar.short_name – уникальный индекс.
      • calendar.category – индекс.
      • event.location – опционально, если будет поиск по местоположению.
    • Зафиксировать полный список индексов для этапа 1.

Результат: финальная версия records.hrl, готовый перечень полей и индексов.


## Этап 0. Анализ и расширение структуры таблиц **Цель**: зафиксировать окончательную схему записей (`records.hrl`), добавив необходимые поля для пользователей, календарей и других сущностей, чтобы избежать частых миграций в будущем и сразу заложить индексы для эффективного поиска. **Шаги**: 1. **Сбор требований**: - Провести опрос команды (фронтенд, мобильные разработчики, администраторы) для выявления всех необходимых полей. - Примерный перечень новых полей: - `user` / `admin`: `nickname` (уникальное короткое имя), `avatar_url`, `timezone`, `language`, `social_links`. - `calendar`: `title`, `short_name` (уникальный идентификатор для API), `category` (enum), `color`, `description`. - `event`: `location`, `recurrence_exceptions`, `attachments`. - `booking`: `notes`, `reminder_sent`. - `review`: `edited_at`. 2. **Обновление `records.hrl`**: - Добавить поля в конец каждой записи со значениями по умолчанию (`undefined`, `[]`, `<<"">`). - Убедиться, что существующий код, использующий `#record{}` целиком или частичные паттерны, не сломается. 3. **Анализ запросов**: - Выявить места в коде, где выполняются `mnesia:match_object` или `select` с шаблонами, содержащими конкретные поля. При необходимости обновить шаблоны для учёта новых полей (обычно не требуется, если поля добавляются в конец). 4. **Определение дополнительных индексов**: - На основе будущих поисковых запросов определить, какие новые поля должны быть проиндексированы: - `user.nickname` – уникальный индекс. - `calendar.short_name` – уникальный индекс. - `calendar.category` – индекс. - `event.location` – опционально, если будет поиск по местоположению. - Зафиксировать полный список индексов для этапа 1. **Результат**: финальная версия `records.hrl`, готовый перечень полей и индексов. ---
aleksey added the Future label 2026-05-02 16:12:56 +03:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Reference: EventHub/EventHubBack#12