ドロップダウンリストからオブジェクト(たとえば、コンピューター名)を選択して構成できるJavaアプリがあります。ドロップダウン リストのコンピュータごとに、構成する必要があるさまざまな構成フィールドがあります。DB に構成フィールドをコンピューターにマップするテーブルがあります。各行には、コンピューター名、構成フィールド名、およびフィールドのタイプが含まれています。
例えば:
computer_name | field_name | type
=======================================
test1 | ip | String
---------------------------------------
test1 | user name | String
---------------------------------------
test2 | manage_port | Number
---------------------------------------
test3 | creation_date | Date
test1
UI のドロップ ボックスから選択すると、ユーザーには 2 つのテキスト ボックスが表示されます。1 つは IP 用で、もう 1 つはユーザー名用です。各テキスト ボックスをユーザーに表示し、正規表現をチェックするバリデータを用意する必要があります。選択するときtest2
、これが実際に数値であり、最小値と最大値であることを検証したいと思います。日付形式を確認する必要があるためtest3
です(これも正規表現を使用しています)。
DB は postgres (ソリューションはすべてのリレーショナル DB に適用されるはずですが) で、Spring + Hibernate を使用しています。
私のアイデアは、バリデーター POJO と、異なる列で可能なすべての検証を含むバリデーター用の DB テーブルを作成することでした。問題は、null 列を持つのは少し冗長だと思うことです。Javaでは、クラス、 クラス、クラスなどValidator
によって拡張された抽象クラスを作成すると思います...しかし、DBでそれを正しく表現する方法がわかりません(各構成にマップする必要があることを覚えておく必要があります)構成表の行)。RegexValidator
NumberFormatValidator
MinNumberValidator
より良いデザインのための提案はありますか?