В моем приложении я разрешаю пользователям создавать форму, содержащую любое поле формы HTML, которое они хотят (например, ввод текста, текстовое поле, выделение и т. Д.).Я хочу дать пользователям возможность определять 0 или более кумулятивных правил проверки для каждого поля (может быть до 25 различных правил проверки).Как мне смоделировать это?
Вот потенциальное решение:
============================================================
| Id | FieldId | ValidationRuleType | ValidationRuleDetail |
============================================================
| 1 | 25 | Required | NULL |
------------------------------------------------------------
| 2 | 26 | Minimum Length | 5 |
------------------------------------------------------------
| 3 | 26 | Maximum Length | 12 |
------------------------------------------------------------
...
Используя вышеупомянутый дизайн, может в большинстве случаев ValidationRuleType может быть просто "Regex" (или значениетаблицу поиска, такую как ValidationRuleTypeId = 1 для «Regex»), и используйте следующее для ValidationRuleDetail:
// Added bonus of this approach is that users who know regex could define their own patterns
.{1,} // Any character, 1 or more times. Use for "Required"
.{5,} // Any character, 5 or more times. Use for "Minimum Length = 5"
.{,12} // Any character, 12 or less times. Use for "Maximum Length = 12"
Проблема заключается в том, что это решение EAV.Это плохо, верно?
Другое потенциальное решение:
=============================================================
| Id | FieldId | Required | Minimum Length | Maximum Length |
=============================================================
| 1 | 25 | TRUE | NULL | NULL |
-------------------------------------------------------------
| 2 | 26 | NULL | 5 | 12 |
-------------------------------------------------------------
...
Это лучше?Я не согласен с тем, какой подход использовать.Любое руководство, которое я могу получить, высоко ценится.