日期:2014-05-18  浏览次数:20717 次

怎么来建这两张sql表
现在有个需求,想要获得所有代理商下面的二级代理,三级代理....所有用户(可管理),代理等级不确定。
我需要怎么建表呢,初步设想是 一张代理商表,一张用户表
代理商表里有: 代理商名称 上级代理商
用户表里有:用户名 所属代理商  
那我怎么去循环获取到某个代理商下面的代理和用户呢?
整个流程是: 总代理
  |  
  一级代理  
  | | |  
  二级代理 二级代理 普通用户
  | | |  
  三级代理 用户 用户
  | |
N级代理 用户

不知道我这样表达清不清楚,我如何建这两张表,在程序里怎么实现功能

------解决方案--------------------
去搜索下 BOM结构
------解决方案--------------------
就是按你说的设计:

代理商表
代理商ID,代理商,上级代理商ID,是否最下级代理商

客户
客户iD,客户,代理商。

可以通过递归的方式来取值,具体要看你的数据库的版本了,2005及以上可以参考 CTE

参考
------解决方案--------------------
两张表就搞定了,
一张是基本表
一张是关联表
类似BOM表
基本表里 id ,名称
关联表里 id,mainid(上级id)
关联表里触发检查id和mainid的关系,
例如关联表有条数据
id mainid
5 10
那么就不会有这条数据
id mainid
10 5
因为5已经是10的上级id了,这样的话会在存储过程造成死循环

最后写个存储过程来循环查找就行了