WDu*_*ffy 7 c# asp.net sql-server-2005 recursive-query
我正在寻找建立一个允许使用分层过滤查询数据的工具.我有一些想法,我将如何去做,但想知道是否有任何建议或建议可能更有效.
例如,假设用户正在搜索作业.工作领域如下.
1: Scotland
2: --- West Central
3: ------ Glasgow
4: ------ Etc
5: --- North East
6: ------ Ayrshire
7: ------ Etc
Run Code Online (Sandbox Code Playgroud)
用户可以搜索特定的(即格拉斯哥)或更大的区域(即苏格兰).
我正在考虑的两种方法是:
SELECT * FROM Jobs WHERE Category IN Areas.childrenField.我从两者看到的问题是:
关于最佳方法的任何想法,建议或建议?我正在使用C#ASP.NET和MSSQL 2005 DB.
这是我见过的一种方法:
创建一个名为 hierarchyid 的 varchar(max) 字段。为所有根对象生成基本 ID。为每个子对象生成一个 id 并在其前面添加父对象 id。
示例表
ID(PK) HierarchyID Area
1 sl Scotland
2 slwc West Central
3 slwcgg Glasgow
Run Code Online (Sandbox Code Playgroud)
查询示例
SELECT * FROM Areas Where HierarchyID LIKE 'sl%'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1924 次 |
| 最近记录: |