Size: a a a

JavaScript.Ninja

2020 June 11

D

Dimitrii in JavaScript.Ninja
И для всех разных типов существует единый список Экшинов одинаково применимый для всех типов обьектов,сущностей?
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
роли назначаются как для сотрудников, так и для клиентов, так и для администраторов. Соответственно у каждого свой перечень сущностей, с которыми он может работать. Логично выделить в отдельный блок функционал по менеджменту ролей и прав. Значит функционал должен быть более менее универсален.
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
Dimitrii
И для всех разных типов существует единый список Экшинов одинаково применимый для всех типов обьектов,сущностей?
Скорее всего нет, пока не знаю, я в процессе придумывания)
источник

D

Dimitrii in JavaScript.Ninja
Я бы не абстрагировался раньше времени, по сколько не известны все требования. А потом появятся еще новые.
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
То что посоветовал Илья(Полиморфные связи), это как раз то что я искал.  Надо придумать как грамотно их обрабатывать. Пока нагуглил, что в Laravel из коробки идет система работы с полморфными связями, сейчас смотрю как они сделали.
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
Dimitrii
Я бы не абстрагировался раньше времени, по сколько не известны все требования. А потом появятся еще новые.
Да, да, согласен, но я ведь как раз сейчас прикидываю что как будет, по этому это в рамках ресерча)
источник

D

Dimitrii in JavaScript.Ninja
Будущие требования и запросы не предскажешь.
На сколько просто можно будет мигрировать таблицы с полиморфными связями?
источник

D

Dimitrii in JavaScript.Ninja
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
))
источник

D

Dimitrii in JavaScript.Ninja
Теперь надо найти что-то в подтверждение крутости полиморфных связей, чтобы избежать предвзятости
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
Ну здесь в любом случае решение корявое получается. Можно создать сущность которая будет включать в себя поля всех редактируемых сущностей, можно для удобства разделить ролевой блок на типы ролей, типа сотрудники, администраторы, клиенты. Но проблема в том, что в МВП войдет ограниченное количество функционала, типа оплаты, отчеты и таски. Но потом будет появляться дополнительный функционал, по мере написания, и сущность агригирующую редактируемые сущности прийдется расширять. В итоге есть шанс получить Entity с большим количеством полей с которой будет неудобно работать.

Ну это я на самом деле забегаю вперед, пока буду иметь в виду возможные варианты, а там видно будет.
источник

IK

Illya Klymov in JavaScript.Ninja
У вас хвост машет собакой
источник

IK

Illya Klymov in JavaScript.Ninja
Вы пытаетесь описать в БД модель пермишнов, не имея (или не оглашая) картины как это будет
источник

IK

Illya Klymov in JavaScript.Ninja
с вероятностью 95% полиморфные связи - тупиковый путь
источник

KF

Konstantin Fedoruk in JavaScript.Ninja
Я вот написал и думаю, если на самом деле составить таблицу со всеми редактируемыми Entity и полям этих Entity присвоить nullable=true, потом при добавлении новой сущности в эту таблицу, в старых записях она будет просто null и это проблемы не вызовет.
источник

D

Dimitrii in JavaScript.Ninja
Вот по-моему, хороший тред-обсуждение. С практическим применением на длительном промежутке времени (в пару лет) полиморфные связи https://laracasts.com/discuss/channels/eloquent/polymorphism-why-should-i-violate-database-design?page=1
источник

IK

Illya Klymov in JavaScript.Ninja
Konstantin Fedoruk
Я вот написал и думаю, если на самом деле составить таблицу со всеми редактируемыми Entity и полям этих Entity присвоить nullable=true, потом при добавлении новой сущности в эту таблицу, в старых записях она будет просто null и это проблемы не вызовет.
поздравляю, вы начинаете изобретать nosql :)
источник

IK

Illya Klymov in JavaScript.Ninja
а потом пойдут частичные индексы и погнали... :)
источник

D

Dimitrii in JavaScript.Ninja
Спасибо, кстати, Илья, что предложили не обычное решение. Об антипаттернах тоже полезно знать.
источник

D

Dimitrii in JavaScript.Ninja
источник