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

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

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

Сообщение KEFIR4UK » 2018.02.28, 17:11

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

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

Nex-Otaku
Сообщения: 798
Зарегистрирован: 2016.07.09, 21:07

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

Сообщение Nex-Otaku » 2018.02.28, 20:34

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

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

anton_z
Сообщения: 336
Зарегистрирован: 2017.01.15, 15:01

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

Сообщение anton_z » 2018.03.01, 10:07

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

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

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


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

yan
Сообщения: 905
Зарегистрирован: 2011.03.23, 09:28
Откуда: Уфа

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

Сообщение yan » 2018.03.01, 10:26

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

KEFIR4UK
Сообщения: 88
Зарегистрирован: 2014.12.13, 16:24

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

Сообщение KEFIR4UK » 2018.03.01, 11:07

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


Ответить