这个问题怎么解决啊。。。。。。。。。。

xp122116961 2010-11-05 09:50:56
要完成业务员授权的一个功能,我自己的思路不清晰,谁能帮我一下
要求是这样的,
假如有3个业务员A,B,C
A有一份自己的单据,A可以授权给B或者C,未被授权的业务员不允许查看其他业务员的单据,只有被单据的所有者授权才可以
查看。
求SQL语句与思路,谢谢了
...全文
93 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
abuying 2010-11-05
  • 打赏
  • 举报
回复
请问,授权人B,C是否可以再授权给其它人?
华夏小卒 2010-11-05
  • 打赏
  • 举报
回复
--> 测试数据: [users]	-- 业务员表
if object_id('[users]') is not null drop table [users]
go
create table [users] (id int,name varchar(1))
insert into [users]
select 1,'A' union all
select 2,'B' union all
select 3,'C'
--> 测试数据: [USER_GRINT] 业务员授权表
if object_id('[USER_GRINT]') is not null drop table [USER_GRINT]
go
create table [USER_GRINT] (USERID int,GRINTiD int)
insert into [USER_GRINT]
select 1,2
--> 测试数据: [userYw] 业务员单据表
if object_id('[userYw]') is not null drop table [userYw]
go
create table [userYw] (userid int,ywid int)
insert into [userYw]
select 1,11 union all
select 1,22 union all
select 2,21 union all
select 2,23 union all
select 3,24

-- 查询身份 A

select c.*
from [userYw] C
JOIN
(
SELECT ID FROM USERS WHERE name='A'
UNION
SELECT USERID FROM [USER_GRINT],USERS WHERE GRINTiD=ID AND name='A'
) T
ON C.userid=T.ID



/*
userid ywid
----------- -----------
1 11
1 22

(2 行受影响)
*/

-- 查询身份 B
select c.*
from [userYw] C
JOIN
(
SELECT ID FROM USERS WHERE name='B'
UNION
SELECT USERID FROM [USER_GRINT],USERS WHERE GRINTiD=ID AND name='B'
) T
ON C.userid=T.ID

/*
userid ywid
----------- -----------
1 11
1 22
2 21
2 23
*/

-- 查询身份 C
select c.*
from [userYw] C
JOIN
(
SELECT ID FROM USERS WHERE name='C'
UNION
SELECT USERID FROM [USER_GRINT],USERS WHERE GRINTiD=ID AND name='C'
) T
ON C.userid=T.ID


/*
userid ywid
----------- -----------
3 24

(1 行受影响)
*/
seiferbb 2010-11-05
  • 打赏
  • 举报
回复
分三张表吧,用户表,权限表,以及单据表吧。
guguda2008 2010-11-05
  • 打赏
  • 举报
回复
在单据上加一个owner字段,创建人为默认插入的值,owner可以添加其它的owner到表单里,或者只有第一个Owner可以添加,字段里的id用,或者;分隔,判断时用charindex判断某个id是否是表单的OWNER
一品梅 2010-11-05
  • 打赏
  • 举报
回复
加个TAG字段好了。按需求来设计。。。
dawugui 2010-11-05
  • 打赏
  • 举报
回复
加个字段做个标记分别记录可操作的业务员。

然后你这种需求需要用程序去实现,如某业务员登录(不是指登录sql server)系统(你开发的系统),只能看标记为改业务员的资料。
王向飞 2010-11-05
  • 打赏
  • 举报
回复
单据id 授权

1 A
2 A
1 B
2 C

select * from table where 授权=‘A’

要是可以继承授权的话,那就再关联其他表,做递归查询。
claro 2010-11-05
  • 打赏
  • 举报
回复
方式一
设定组别,比如A是管理员(假设),当A将B、C添加相应的组即继承相应的权限。

windows等的权限控制也是如此。
华夏小卒 2010-11-05
  • 打赏
  • 举报
回复
目前的表结构已经确立了吗?
随着通信电子技术的迅速发展,信息技术给家居行业产生了深远的影响,家居环境的智能化监控已经成为智能家居的一个重要的发展方向。人们逐渐对自己的生活提出一种更高的要求,他们需要一种智能化、可交互,并且融合现代创新科技的产品来改善他们的生活环境,使他们生活更加安全、舒适、便捷、智能。本文根据智能家居的发展背景和研究现状,并且从实用性和可行性角度出发,研究设计了一种基于STM32单片机的智能家居系统。该系统由一个多功能综合的技术系统组成,各个多功能子系统间具有协同配合能力。基于STM32单片机实现的功能子系统包括:智能温度检测,智能湿度检测,智能烟雾/火灾检测智能检测,无线传输,人机交互机构,风扇调节,报警模块。 整个系统分为前端51单片机采集板和后端STM32单片机接收板。 采集板使用DHT11温湿度传感器、MQ烟雾传感器完成室内家居环境的采集。然后通过nRFL24L01将采集到的数据发送给后端。接收板使用LCD1602完成数据显示、使用蜂鸣器模块报警,使用风扇驱动模块调节室内家居环境。本文完成了智能家居控制系统前端、后端软硬件的设计,使用Altium designer绘制了电路原理图,使用Keil C完成了51单片机和STM32单片机的编程与调试。 最后,对本文设计的基于STM32的智能家居控制系统进行部署调试。试验结果表明,该系统可成功应用在智能家居环境检测调节和火灾安全防护的领域,可提高家居生活智能化水平。

22,296

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧