Пренаписване на експоненциален израз по по-космен начин | Алгебра II | Академия Хан

Понякога получавам предложението да ги създам и винаги е ад за поддръжка.

Например: печатница иска формуляр, за да можете да поръчате печата си онлайн. Това най-вече е многократна форма, в която можете да изберете размер, хартия и т.н., а в зависимост от избраните опции получавате и други опции.

Най-вече мога да кодирам твърдо това, което искат, но ако искат да променят нещо по-късно, това е много тромаво, защото трябва да промените формата, валидирането и back-end, за да приспособите промените.

Чух от някои клиенти, че в миналото са получавали предложения от компании, които са имали специализирани системи за това. Първоначално мислех, че това е малко над убийството, но тъй като имате нужда от система, която може да е много гъвкава, може би греша?

Така че, ако някой може да даде примери, книги, уебсайтове, видеоклипове или други медии по въпроса, аз го оценявам.

Генерирането на формуляри динамично е доста лесно. По-трудната част е проектирането на back-end, който побира динамични данни за формуляри. Но и това не би трябвало да е твърде трудно.

Най-често срещаният подход е да се използва EAV модел (Entity-Attribute-Value), известен също като отворена схема модел. Това е обобщена форма на моделиране на редове, което записва факти за нещо в множество редове вместо в множество колони.

Така че вместо да се извика таблица Orders с полета като size, paper, colorи т.н. и ако трябва да модифицирате схемата на таблицата или да създадете нова таблица, за да създадете нова персонализирана форма, просто ще имате 3 таблици (Entity, Attribute, Value), в който могат да се съхраняват всички данни на формуляра, без значение как изглежда формулярът. В този случай всяка поръчка би била нова субект, всяко поле на формуляра ще бъде атрибут, и разбира се избраните опции ще бъдат стойности.

В началото това може да изглежда малко объркващо, но след като започнете да прилагате системата, всичко ще започне да си идва на мястото. Обикновено това се прави в слоя за абстракция на базата данни или ORM. Вижте Magento за пример за това в действие, което използва EAV, за да позволи потребителските атрибути на продукта да бъдат дефинирани.

Трябва да се отбележи, че мнозина (например Бил Карвин - бивш мениджър на проекти за Zend Framework) считат EAV за антипатерн, но не мога да измисля по-добри алтернативи на EAV за тези случаи, така че ползите надвишават разходите на IMO.

е работил за вас: Charles Robertson | Искате ли да се свържете с нас?