Как лучше всего хранить UTM-метки разных сущностей в базе данных?
У меня есть:
1. Заказы
2. Заявки
3. Сообщения со страницы контакты
Для этих сущностей я хочу хранить в БД UTM-метки, но не просто сохранить, а чтобы в дальнейшем можно было делать небольшие срезы (например, самый прибыльный источник, объявление и т. д).
Возник вопрос, как лучше организовать их хранение?
Если бы мне нужно было просто их сохранить, то использовал бы например JSON и записывал в поле utm_data, но не уверен, что это хороший вариант, если требуются дальнейшие манипуляции с ними.
Сейчас думаю о таких вариантах:
Вариант 1. Создать три разных таблицы для каждой сущности, например, order_utm_params, request_utm_params, contactus_utm_params и использовать связь hasMany()
Вариант 2. Создать одну таблицу для всех сущностей, например, utm_paramable и использовать связь morphMany()
В первом варианте вроде все ОК, но таблиц слишком много, во втором таблиц не много, но получится большая каша, так как UTM-меток может быть много, как бы вы сделали? И почему?
Может был подобный опыт?
Отдельные системы аналитики не предлагайте, так как городить из сайта Яндекс.Метрику не хочу.