Сохранение модели c разным набором полей

Обсуждаем, как правильно строить приложения
Ответить
KEFIR4UK
Сообщения: 97
Зарегистрирован: 2014.12.13, 16:24

Сохранение модели c разным набором полей

Сообщение KEFIR4UK »

Добрый день.
Нужно реализовать некоторое логирование ивентов(их будет очень много). Для етого есть одна сущность Event с кучей полей, с одним обязательным полем event_id. В зависимости от значения event_id порядок обязательных полей меняется. Соответственно у меня 2 вопроса:
-как лутше организовать валидацию.
- как это все сохранять.

Касательно валидации все что пришло в голову это для каждего ивента создавать свою форму и там валидировать.
По второму пункту как бы соображений вообще ничего в голову не приходит.
Nex-Otaku
Сообщения: 831
Зарегистрирован: 2016.07.09, 21:07

Re: Сохранение модели c разным набором полей

Сообщение Nex-Otaku »

Создать форму для логирования "ивентов"? Однако, вы затейник.

Что касается самой задачи - вот пример https://github.com/samdark/yii2-cookboo ... ritance.md
anton_z
Сообщения: 483
Зарегистрирован: 2017.01.15, 15:01

Re: Сохранение модели c разным набором полей

Сообщение anton_z »

Надо больше информации. Какие запросы будут к таблице событий? Будет ли что-то кроме выборок по event_id?

Будут ли какие-нибудь связи с данными в других таблицах по необязательным колонкам?

Если сделаете STI, есть вероятность замучаться потом с долгими ALTER TABLE (смотря сколько событий).
Как альтернатива: event_id(int), created_at(date), event_body(json). type_name(varchar). В event_body сохраняете json бинарный, смотря что у вас за БД и что за драйвер/клиент.


А события, что сами пользователи создавать будут через форму? Если не требуется типы событий добавлять через админку, то конечено, на каждый тип свой класс формы.
yan
Сообщения: 942
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

Re: Сохранение модели c разным набором полей

Сообщение yan »

подозреваю, что автор подразумевал под формой просто модель на основе Model, направление мысли правильное - осталось только сериализовать содержимое такой модели (например Json::encode($model)) и сохранить в таком виде в базу
KEFIR4UK
Сообщения: 97
Зарегистрирован: 2014.12.13, 16:24

Re: Сохранение модели c разным набором полей

Сообщение KEFIR4UK »

anton_z писал(а): 2018.03.01, 10:07 Надо больше информации. Какие запросы будут к таблице событий? Будет ли что-то кроме выборок по event_id?
Да, выборки будуть и по другим полям.
Ивенты будуть слать мобильное приложение, мне их сейчас попросту нужо сохранять и в дальнейшем строит по етим данным аналитику.
Для этого решили использовать колоночную базу.
У меня вообще возник сейчас вопрос инной, а стоит ли вообще для аналитики как нибуть валадироват данные кроме как проверка на корректность типа(стринга ли ето или чисто и тд...)? Если нет то и проблема отпадает сама собой.
Ответить