リクエストされた資料 (MaterialRequest テーブル) を見て、資料を提供して結果をランク付けできるプロバイダ (userprofile.usertype_id = 1) を見つけるクライアント用のランクマッチ/検索システムを作成しようとしています。ほとんどの、またはすべての材料を提供できます。これが私が持っているデータベーススキーマです:
ユーザープロファイル テーブル
userprofile_id int identity
userprofile_dt datetime
first_nm varchar(50)
last_nm varchar(50)
usertype_id int (provider = 1, requestor = 2)
リクエストテーブル
request_id int identity
request_dt datetime
title varchar(50)
description varchar(100)
userprofile_id int (where usertype = 2)
資料請求表
material_req_id int identity
request_id int
material_id int
MaterialProvider テーブル
material_pro_id int identity
userprofile_id int (where usertype = 1)
material_id int
材料表
material_id int identity
material_desc varchar(50)
たとえば、次のようなリクエストがあるとします。
request_id = 1
request_dt = 3/28/2011
title = 'test request'
desc = null
userprofile_id = 100 (where usertype_id = 2)
そして、これらの資料が要求されました
material_req_id request_id material_id
1 1 10 (steel)
2 1 11 (copper)
3 1 12 (titanium)
4 1 13 (nickel)
MaterialProvider は次のように入力されました
material_pro_id userprofile_id material_id
1 2 10 (steel)
2 2 11 (copper)
3 2 13 (nickel)
4 3 11 (copper)
5 3 13 (nickel)
6 3 12 (titanium)
私の出力は次のようになると思います
userprofile_id steel copper nickel titanium pct_match
2 Y Y Y N 75
3 N Y Y Y 75
ここで、列名はリクエストの資料に由来します。次に、要求された資料の特定の割合以上を提供できるプロバイダーを見つけることができます。
一時テーブルとカーソルから始めました
- 列を一時テーブルに追加します
- 次に、3000 以上のプロバイダーを繰り返し処理し、指定された資料を提供できるプロバイダーを追加します。
これを行うより良い方法はありますか?このプロセスには時間がかかりすぎるため、このようなものを作成する方法について、より良い/ベスト プラクティスを取得したいと考えています。