1

各データ型の単一セルを見て、それらの値が許容できるかどうかを確認するデータベースのデータ品質フレームワークを作成しています。

データ型文字列の場合: 正規表現を使用して有効なものを定義するだけです

他のデータ型 (Integer、Timestamp、Boolean、TimeDelta、Float など) の場合: 有効なものを記録する標準的な方法はありません。

他のデータ型の正規表現に相当するものはありますか? IntegerRegEx のような?たとえば、0 から 65535 までの数字を含む必要があるフィールドがある、または奇数のみを含むことができるフィールドがあるとします...

この IntegerRegEx も (通常の RegEx のように) 文字列であるとよいので、IntRegEx と StringRegEx を同じテーブルに格納できます。

前もって感謝します!

4

2 に答える 2

0

文字列で正規表現のようなものが必要な場合は、正規表現を使用できます。各タイプを文字列に変換する標準的な方法を用意し、文字列形式に対して正規表現を記述してください。一部の人にとっては厄介で、他の人にとってはエラーが発生しやすいかもしれませんが、それは簡単で、独自の式言語を作成したり、データベースからコードを直接ロードして評価したりする必要はありません。

于 2012-09-22T07:55:55.923 に答える
0

プログラミングしている言語、たとえば PHP によっては、$x >= 0 && $x <= 65535or などの数式 (文字列) を格納できると思います$x % 2 == 1

正規表現では、次のように記述しますよね?

if (!preg_match($regexFromDb, $fieldValueFromDb)) {
    // validation fails
}

したがって、数式を使用して、同じことを行います。

$x = $fieldValueFromDb;
if (!eval("return $mathExprFromDb")) {
    // validation fails
}

これは単なる例示的なコードです。もちろん、任意の保存された実行可能コードを実行する危険からコードを保護する必要があります。また、意味不明な式がスクリプトをクラッシュさせないようにする必要があります。

あなたが探している「IntegerRegEx」にはすでに名前が付けられているので、これはあなたが得ようとしているのと同じくらい近いと思います... Math。;)

于 2012-09-21T20:35:13.180 に答える