2

定期的に吸い込まれる外部データセットに依存するGrailsアプリケーションがあります。データを取り込むプログラムは私たちによって作成されていないため、データベースに入ったときにデータを検証する方法はありません。

たまに、データベースに不良データが含まれることがあります。たとえば、数値は「5.5」ではなく「5,5」です。フィールドには常に数値が含まれている必要がありますが、列のデータ型(テーブルを定義しているため)はVARCHARです。私たちのアプリケーションでは、この列がORMレイヤーのFLOATにマップされています。これは、それが期待されるものだからです。

新しいデータを取得したときにアプリケーションがクラッシュしないようにしたいのですが、方法がわかりません。列をVARCHARにマップしてから、一時的なFLOAT列などに変換する必要がありますか?

4

1 に答える 1

2

短期的には、はい、数値型ではなくドメインオブジェクトの文字列にVARCHARをマッピングすると問題が解決します。

私の意見では、より良い解決策は、別のテーブルに定期的にインポートし、有効な行のみをドメインテーブルに移動するプロセスを用意することです。また、「不良」行をどこかに配置し、手動で修正するように誰かに通知することもできます。

于 2012-09-15T17:00:50.790 に答える