私は現在、データを取得し、ユーザー定義の制限に基づいて生成されたシナリオを整理する必要がある作業の問題に取り組んでいます。私は多くのことを試しましたが、私が望むほど効率的に何かを実行することはできないようです. 実行をスケーリングできるように、DB の外部で実行する必要があるかもしれませんが、可能であれば DB の内部で実行する必要があると考えました。たとえば、3 つのエンティティがある場合:
Transportation Type:
Car
Boat
Plane
Color:
Blue
Green
Red
Purple
White
Accessories:
Trailer
Wheels
Propeller
Parachute
ユーザーは制限を入力できます:
Transportation_Type=Boat, Accessories= Wheels
そのため、ボートと車輪を含むシナリオの組み合わせは制限されます。
Example Valid Scenario with restriction: Boat/Red/Trailer
したがって、これが複雑になるのは、ユーザー定義の制限があっても、3 つのエンティティに対して考えられるすべてのシナリオを構築すると、それほど悪くはないと想像できることです。しかし、エンティティが 22 個ほどある場合はどうなるでしょうか (エンティティは基本的に値を持つレベルです)。これが巨大になり、制限を適用するのが難しくなることは容易に想像できます。特に、制限を構成するレベル/値 (ボートやホイールなど) のセットである場合。
誰にも考えはありますか?
派生シナリオをチェックできる動的な like ステートメントを作成することで、約 14 ~ 16 レベルで実際にパフォーマンスを向上させることができました。しかし、その後、プロセス時間は爆発的に増加します (レベルにもっと多くの値がある場合、より低いレベルで発生する可能性があります)。