我想寫一個客戶端的排名匹配/搜索系統,將查看所需材料(MaterialRequest表)並找到提供者(其中userprofile.usertype_id = 1 )誰可以提供材料並對可提供最多或全部材料的結果進行排名。這裏的數據庫模式,我有:匹配和排名查詢與動態列和百分比匹配
USERPROFILE表
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)
MaterialRequest表
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+供應商迭代,並添加這些供應商能夠提供的指定教材。
有沒有更好的方法來做到這一點?這個過程需要太長的時間,希望能夠在如何寫這樣的東西方面取得更好的成果/最佳實踐。
Y/N代表您的預期產出? – Jody 2011-03-28 15:09:24
是/否指示供應商是否可以提供該欄所代表的材料。 – 2011-03-28 18:49:37