Я создаю приложение, которое используется для размещения заказа на собаку в клинике. Таблицы как ниже:
Clinic [id, name, email]
Dog [id, name, age, weight]
Order [id, price, status, clinic_id, dog_id]
Теперь я хочу, чтобы функция регистрировала все обновления / изменения активности, когда:
- заказ размещен.
- статус заказа помечен как отгруженный.
- пользователь обновляет значение любого столбца вышеприведенных таблиц
- создана новая собака или клиника ..
- и т. Д.
У меня есть две идеи:
Создайте центральную таблицу Activity и сохраните сообщение вместе с идентификатором типа.
Activity [id, type, description]
[1, dog, 'New dog tommy was added']
Создайте отдельную таблицу для каждого типа и направьте все журналы через таблицу операций.
Activity [id, type, type_id]
DogActivity [id, description, extra_cols......]
ClinicActivity [id, description, extra_cols......]
В подходе 1. Я вижу, что могут быть две проблемы:
1. проблема масштабирования, если дБ становится больше
2. могут быть дополнительные столбцы на основе типов. так будет много пустых столбцов?
В подходе 2. Если может быть проблема в обработке сложности получения / обновления данных через API?
Пожалуйста, дайте мне знать, как я могу найти хорошее решение для этой проблемы?