Организация кода для специфической задачи

Общие вопросы по использованию второй версии фреймворка. Если не знаете как что-то сделать и это про Yii 2, вам сюда.
Ответить
winzza
Сообщения: 126
Зарегистрирован: 2015.06.11, 20:30

Организация кода для специфической задачи

Сообщение winzza »

Здравствуйте уважаемые форумчане. В качестве обучения придумал себе задачу (заранее предупреждаю структура бредовая):
Имеются таблицы:
firstname:
- id
- name

lastname:
- id
- id_firstname
- lastname
- patronymic

statistic
- id
- id_profession (ключ для таблицы profession ее здесь описано не будет)
- id_lastname
- time_work
- age

Вооот, для всех этих таблиц есть круды. Но хотелось бы чтобы у крудов lastname и statistic при создании новых записей была возможность создать имя и фамилию, а если есть и отчество из одной строки.
Что конкретнее я имею ввиду:
К примеру мы создаем запись lastname. На форме хотелось бы иметь два варианта создания - это просто строка где через пробел будут указаны имя фамилия и отчество и это отдельные поля для id_firstname, lastname и patronymic. Если запись создается из строки (имя фамилия отчество [отчество может отсутствовать]), то должна быть, я так понимаю, транзакция. Т.е. сначало создадим запись в таблицу firstname после чего lastname (нам же нужен id_firstname) и если что-то не так, то откатываем транзакцию.
Далее когда мы создаем statistic хотелось бы иметь такое же поле (имя фамилия отчество) и если мы создаем с помощью его новую запись, то должна быть транзакция по всем трем таблицам. В итоге получается что есть общая логика. Куда ее выносить? Как вообще правильно организовать код? Ведь хотелось бы, чтобы и ошибки при неправильно заполненных полях тоже показывались.

Может быть переопределять метод save() ? В общем кто что посоветует?
И еще вопрос это должно быть два метода create или один и в зависимости от поступаемых данных модель будет знать как сохранять?
Аватара пользователя
Bezlepkin
Сообщения: 731
Зарегистрирован: 2012.11.10, 18:59
Контактная информация:

Re: Организация кода для специфической задачи

Сообщение Bezlepkin »

Настолько бредовая что читать не хочется столько букв :)
Аватара пользователя
Alexum
Сообщения: 683
Зарегистрирован: 2016.09.26, 10:00

Re: Организация кода для специфической задачи

Сообщение Alexum »

В целях обучения научитесь придумывать нормальную структуру БД.
steaze
Сообщения: 30
Зарегистрирован: 2017.01.28, 21:25

Re: Организация кода для специфической задачи

Сообщение steaze »

По поводу транзакций посмотрите здесь: https://nix-tips.ru/yii2-api-guides/gui ... operations
Yii это MVC фрейворк, по этому принципу и определяйте логику.
Ответить