Схема базы данных для регистрации всех обновлений действий - PullRequest
0 голосов
/ 07 ноября 2018

Я создаю приложение, которое используется для размещения заказа на собаку в клинике. Таблицы как ниже:

Clinic [id, name, email]
Dog [id, name, age, weight]
Order [id, price, status, clinic_id, dog_id]

Теперь я хочу, чтобы функция регистрировала все обновления / изменения активности, когда:

  • заказ размещен.
  • статус заказа помечен как отгруженный.
  • пользователь обновляет значение любого столбца вышеприведенных таблиц
  • создана новая собака или клиника ..
  • и т. Д.

У меня есть две идеи:

  1. Создайте центральную таблицу Activity и сохраните сообщение вместе с идентификатором типа.

    Activity [id, type, description]

    [1, dog, 'New dog tommy was added']

  2. Создайте отдельную таблицу для каждого типа и направьте все журналы через таблицу операций.

    Activity [id, type, type_id]

    DogActivity [id, description, extra_cols......]

    ClinicActivity [id, description, extra_cols......]

В подходе 1. Я вижу, что могут быть две проблемы: 1. проблема масштабирования, если дБ становится больше 2. могут быть дополнительные столбцы на основе типов. так будет много пустых столбцов?

В подходе 2. Если может быть проблема в обработке сложности получения / обновления данных через API?

Пожалуйста, дайте мне знать, как я могу найти хорошее решение для этой проблемы?

...