我有一个 java 应用程序,我可以在其中从下拉列表中选择一个对象(比如说 - 计算机名称),然后对其进行配置。对于下拉列表中的每台计算机,需要配置不同的配置字段。我的数据库中有一个将配置字段映射到计算机的表。每行包含一个计算机名称、配置字段名称和字段类型。
例如:
computer_name | field_name | type
=======================================
test1 | ip | String
---------------------------------------
test1 | user name | String
---------------------------------------
test2 | manage_port | Number
---------------------------------------
test3 | creation_date | Date
test1
从 UI 中的下拉框中选择时,用户将看到 2 个文本框,一个用于 ip,第二个用于用户名。每个文本框都需要呈现给用户,并有一个检查正则表达式的验证器。选择时test2
,我想验证这确实是一个数字以及最小值和最大值。因为test3
我需要确保日期格式(再次使用正则表达式)。
数据库是 postgres (虽然我猜该解决方案应该适用于每个关系数据库),我正在使用 Spring + Hibernate。
我的想法是为验证器创建一个验证器 POJO 和一个数据库表,其中将包含所有可能在不同列中进行的验证。问题是,我觉得有空列有点多余。在java中我想我会做一个由类, 类,类等Validator
扩展的抽象类......但我不知道如何在数据库中正确表示它(需要记住它需要映射到每个配置配置表中的行)。RegexValidator
NumberFormatValidator
MinNumberValidator
对更好的设计有什么建议吗?