Страница 1 из 1

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

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

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

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

Добавлено: 2018.02.28, 20:34
Nex-Otaku
Создать форму для логирования "ивентов"? Однако, вы затейник.

Что касается самой задачи - вот пример https://github.com/samdark/yii2-cookboo ... ritance.md

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

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

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

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


А события, что сами пользователи создавать будут через форму? Если не требуется типы событий добавлять через админку, то конечено, на каждый тип свой класс формы.

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

Добавлено: 2018.03.01, 10:26
yan
подозреваю, что автор подразумевал под формой просто модель на основе Model, направление мысли правильное - осталось только сериализовать содержимое такой модели (например Json::encode($model)) и сохранить в таком виде в базу

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

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

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

Добавлено: 2018.03.01, 13:55
Nex-Otaku
Не стоит.