は多分これはここに暗闇の中でショットですが、私は、誰もが我々が提示されているこの問題についての考えを持っているかどうかを確認しようとしています。ウェブベースのドメイン固有のクエリービルダーのパターンやアイデア(報告用ではない)?
状況は、我々は、プロジェクトの大規模なリストに関するすべての種類のデータを含むデータベースを持っているということです。数多くのテーブルがあり、プロジェクトに関するサポート情報を1対1の方法で提供しています。ProjectInfoTypeAという名前のテーブルにプロジェクトに関する特定の情報(ProjectInfoTypeAなど)が格納されている場合があります。プロジェクトテーブルにはN個の属性を割り当てることができ、この場合はいくつかの属性/ルックアップテーブルに対して「キーワード」を割り当てることができるProjectScopeKeywordsのように、1対多のものがあります。
最終的に私たちのWebアプリケーションのユーザーには次のようなものを構築させる必要があります。 過去5年間で完了したすべてのプロジェクトを、少なくとも4年間はかかっており、これらのキーワードのうち3つ(x、y、z)はすべてそれに関連付けられています。
ユーザーは、クエリを保存して、自分や他のユーザーが保存されたクエリの一覧からそのクエリを選択できるようにする必要があります。
フィルタからプロジェクトのリストを取得したら、それをさまざまな方法で処理する必要がありますが、レポートとしては使用できません。これがレポートの場合は、何らかのレポートビルダーを提供するだけですが、Webアプリケーションでフィルタリングされたリストを操作する必要があります。
現在、私たちは2つの異なるアイデアを考えています: 1)クエリを構築するための独自のUIを作成してから、巨大なSQL文を作成しようとしています。
2)それぞれのフィルタに関するデータをデータベースに格納し、「検索」を滑らせると、各クエリに一致しなかったプロジェクトを繰り返し削除してプロジェクトのリストをプルーニングし、データベースに格納されているデータに基づいて実行されます。
私はこのようなことに対処しなければならないとは思っていませんが、もしあなたがいたら、私は調べる価値のある提案/パターンを聞くことに興味があります。
私は質問ビルダーに行きました。ただ明確にするために、利用可能なオプションのいくつかのようなブラウザベースのデータベースクエリデザイナーは欲しかった。私は、ユーザがリストから多くの異なるオプション/値/アイテムを選択して、いくつかの異なる(オプションの)フォームにナビゲートし、最終的にその条件を満たすデータベース内のすべてのアイテムのリストを作りたがっていました。 – chrismay
私は、それぞれのクラスが結合されたテーブルを含むようにわずかにクエリを変更する方法や、多対多レコードの存在をチェックする方法に関する情報を含むコレクションにそれぞれ追加できる一連のクラスを構築しました。 where節。私たちが正しいことをしたと確信しています。よりシンプルに見え、ユーザーは「AND」と「OR」を使用できます。 – chrismay