問題タブ [business-rules]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
csla - ビジネスルールがC#(コード)で記述されているのはなぜですか?
Lhotka CSLA.NETオブジェクトライブラリ(Lhotka.NET)を見ています。面白そうですが、意味をなさないことの1つは、ビジネスルールがC#で記述されていることです。これらがコードの外部でコーディングされていない場合(アプリのメインロジックに結合されていないライブラリであっても、ルールは変更され、再コンパイルが必要になる可能性があります)。
ありがとう
sql-server - データベースのキー ルックアップとは何ですか? ビジネス ルールとの違いは何ですか?
データベースでのキー検索とは実際には何なのか疑問に思っていました。
キー ルックアップとビジネス ルールの違いは何ですか?
君たちありがとう !
sql - データベースレベルでのビジネスルールの適用
私は、データベースに保存されている大勢の人々の特定のタイプのステータスを判別する必要があるプロジェクトに取り組んでいます。これらのステータスを決定するためのビジネスルールはかなり複雑であり、変更される可能性があります。
例えば、
数十のステータスと、場合によっては数百のグループと属性を掛けます。人、グループ、および属性はすべてデータベースにあります。
これはJavaアプリによって消費されますが、データベースに対して直接レポートを実行できるようにすることも必要なので、計算されたステータスのセットがデータレベルで利用可能であることが最善です。
したがって、現在の設計計画では、各人のブールフラグのセット(hasStatusA?hasStatusB?hasStatusC?)で構成されるテーブルまたはビューを作成します。このように、ステータスCを持つすべての人にクエリを実行する場合、ステータスCを計算するためのすべてのルールを知る必要はありません。旗をチェックするだけです。
(実際には、フラグにはより意味のある名前が付けられることに注意してください:isEligibleForReview?、isPastDueForReview?など)。
したがって、a)これは合理的なアプローチであり、b)もしそうなら、それらのフラグを計算するための最良の方法は何ですか?
フラグを計算するために検討しているいくつかのオプション:
フラグのセットをビューにし、SQLまたはPL-SQL(これはOracle DB)を使用して、基礎となるデータからリアルタイムでフラグ値を計算します。このように、値は常に正確ですが、パフォーマンスが低下する可能性があり、開発者がルールを維持する必要があります。
フラグのセットを静的データで構成し、ある種のルールエンジンを使用して、基になるデータが変更されたときにそれらのフラグを最新の状態に保ちます。このようにして、ルールをより簡単に維持できますが、特定の時点でフラグが不正確になる可能性があります。(このアプローチを採用する場合、この方法でデータベース内のデータを簡単に操作できるルールエンジンはありますか?)
biztalk - Biztalk - プログラムでルール/ポリシーを作成できますか?
Biztalk は、設計時のツールである Business Rules Composer を介したルールの作成のみをサポートしているようです。
Biztalk のビジネス ルール エンジン (BRE) に言及している「プログラムによる」という表現はどこでも見られますが、.NET でルールを実行できることだけがわかり、実際にルールを作成することはできません。Microsoft.RuleEngine 名前空間を見つけましたが、ドキュメントはひどいもので、例がなく、それを使用してルールを作成できるのか、ルールを取得できるのかさえわかりません (1 つの例を見つけました)。
このAPIが存在するかどうか、および/またはブログ/リファレンス/ドキュメントが役立つかどうかを知っている人はいますか?
architecture - ビジネス ルールを 3 層アーキテクチャの新しいデータベースに転送する方法は?
3 層アーキテクチャは、プレゼンテーション層、ビジネス ロジック、およびデータベース層で構成されることがわかっているため、ビジネス ルール (ストアド プロシージャ、トリガーなど) はデータベース層に格納されるため、データベース エンジンを置き換えたい場合は、 (ms sqlserver など) 新しい db エンジン (oracle など) では、これらのルールを新しい db エンジンに転送する必要があります。
私の質問は、これらのルールを新しいエンジン用に書き直すのではなく、自動的に転送する方法です。
ruby-on-rails - RubyonRails用の動的ビジネスルールエンジン
「動的ビジネスルール」エンジンを必要とするアプリケーションがあります。一部のビジネスルールは非常に頻繁に変更されます。その後、一部は限られたビジネスアカウントのセットに適用されます。例:私の顧客は、サイズ、営業担当者の数、製品の数、場所などに基づいて店舗を認定するプロセスを持っています。しかし、彼は異なるアカウントを管理し、各アカウントは各属性に異なる「重み」を与えます。
Rubyを使用してこのエンジンを実装するにはどうすればよいですか?Javaにはよだれが出ていることは知っていますが、よだれは煩わしく複雑です。そして、私はJRubyを使用する必要がないことを好みます...
よろしく、
ルベム
database - データベースでデータとロジックの両方をモデル化するにはどうすればよいですか?
私は、ユーザーがオンラインでログインして購読を更新できる雑誌の Web アプリに取り組んでいます。これらのサブスクリプションは、一連のルールに基づいて更新されます。これらのルールを設定する方法について、いくつかのアイデアや推奨事項を入手したいと思います。
この Web アプリは、サブスクライバーのデータを持つ外部 (サードパーティ) システムとインターフェイスします。サブスクライバーがログインすると、Web アプリはこのサードパーティ システムから一連の情報を取得します。これには、サブスクライバーが持っているサブスクリプションの種類を (表向きは) 示す「サブスクリプション定義 ID」と呼ばれる番号が含まれます。このサブスクリプション タイプは数年古い可能性があるため、Web アプリには、現在のレートなどの情報とともに、現在のサブスクリプション オプションで構成される一連の「注文仕様」(データベースに保存されている) が含まれています (したがって、価格を変更することができます)。注文フォームでユーザーに表示されます)。
私の現在のアイデアは、特定のサブスクリプション定義 ID が更新される注文仕様にマップされるサブスクリプション定義 ID のテーブルを作成することです。たとえば、サブスクリプション定義 ID は、10 年前の 1 年間のサブスクリプションを示し、当時は 39.99 ドルでした。データベースでは、これは現在の注文仕様にマップされ、現在の価格は $59.99 になります。
これは理論的にはかなりうまく機能しますが、いつものように、落とし穴があります。サブスクリプション定義 ID が以前に設定されたとき、それらは常に一意ではありませんでした。特に、1 つのサブスクリプション定義 ID は、コンテキストに応じて大きく異なる動作をします。このサブスクリプション定義 ID は、1 年間のサブスクリプションと 1 年間の割引ギフト サブスクリプションの両方に使用されます。したがって、このサブスクリプション定義 ID を指定すると、次のようなことが起こります。
- 1 年間のサブスクリプションの場合、彼は (現在の) 1 年間のサブスクリプションを使用して更新します。
- 1 年間の割引ギフト サブスクリプションで、サブスクライバーが他のサブスクリプションを更新していない場合、(現在の) 1 年間の正規価格のギフト サブスクリプションとして更新されます。
- 1 年間の割引ギフト サブスクリプションで、サブスクライバーが他のサブスクリプションを更新している場合、(現在の) 1 年間の割引ギフト サブスクリプションとして更新されます。
特にこの複雑さは1 つのレコードでのみ発生するため、データベースでこれを一般化する方法がわかりません。基本的に、特殊なケースではないレコードでも機能する上記のロジックをモデル化する方法が必要です。これはいつでもコードで行うことができますが、このようなビジネス ロジックをすべてコード自体に含めることには消極的です (特に、将来、他のサブスクリプション定義 ID で問題が発生した場合に備えて)。
このデータと論理ルールの組み合わせをモデル化する最善の方法は何ですか?
java - Drools ルールのマップと文字列
element で満たされた map を送信する次の Drools ルールがありますが、実行されると element があります。値が「Y」であるはずなのに、なぜ null になるのですか? ACDebug.debug() メソッドにブレークポイントを配置し、$map.put() が実行された後にマップを検査すると、値が "Y" になっていますが、ルールが実行された後は null になりますか? 誰かが同様の問題を抱えていますか?
database - アプリケーション層とデータベース層の両方でビジネス ルールを適用する必要がありますか?
アプリケーション層 (モデル) とデータベース層 (エラーを発生させるストアド プロシージャ) の両方でビジネス ルールを適用しています。
いくつかの理由で、両方の場所で検証を複製してきました。
- アプリケーション コードでチェックインするときとデータベースでチェックインするときとで条件が変わった場合、データベースでのビジネス ルール チェックによって問題が解決されます。データベースでは、アプリケーション コードよりも簡単な方法でさまざまなレコードをロックすることもできるので、ここでそうするのが自然に思えます。
- データベースへのバッチ データの挿入/更新を直接実行する必要がある場合、ビジネス ルールの検証を行っているストアド プロシージャ/関数を介してこれらすべての操作をルーティングすると、アプリケーションを介して単一入力を行っていた場合に得られる保護。
- これらのことをデータベースでのみ実施すると、実際のデータに同じ効果が生じますが、データが制約やビジネス ルールに準拠していることを検証するための十分な努力をする前に、データベースにデータを投げ込むのは適切ではないようです。
適切なバランスは?
php - PHPでの制約プログラミング
PHP用の制約プログラミングライブラリはありますか?このような状況を処理できるもの。