B表,人员表,有字段人员ID,姓名等等。
A表,(一些信息字段),创建人,最后修改人,审核人,等等人,同是B表的人员ID。请教,如果设计这二表,使得查询时方便将A表所有的人员ID字段转换为实际的姓名。
A表,(一些信息字段),创建人,最后修改人,审核人,等等人,同是B表的人员ID。请教,如果设计这二表,使得查询时方便将A表所有的人员ID字段转换为实际的姓名。
解决方案 »
- VB DAO 查询
- 求一个判断条件
- 倒入大批数据到access,其间发生错误,如何取消已经导入的数据?
- 怎样判断窗体上那些是数组控件那些不是?急急急
- 怎样在状态条中显示进度条?
- VB基础问题--查找替换行
- 验证了局域网的密码,又要验证ERP的密码,密码太多了,能不能...?
- 敬请赐教-------------------------------------------------------
- 该笑我,还是ADO?---AbsolutePosition与RecordCount
- 在vb6中用ADO连接数据库时,为什么它的recordset集里没有rs.edit该方法?如果
- Data控件“对象变量或With变量未设置”,怎么设呀?
- VB中画一条任意线(虚线形式的) 可是调用vb6.0中自带的 画的慢了就连到一起了 这个问题该怎么解决呀?
, c.姓名 as 创建人
, d.姓名 as 最后修改人
, e.姓名 as 审核人
from A表 as a left join B表 as c on a.创建人=c.id
left join B表 as d on a.最后修改人=d.id
left join B表 as e on a.审核人=e.id
B表: UserID,UserName
A表: UserFile,CreateUserID,LastSaveUserID,CheckedUserID,PrintUserIDA表的后四个字段内容均为B表的userid,
请教,如何设计表结构,或如果查询得到
UserFile,UserName,UserName,UserName,UserName
, (select 姓名 from B表 where id=a.创建人) as 创建人
, (select 姓名 from B表 where id=a.最后修改人) as 最后修改人
, (select 姓名 from B表 where id=a.审核人) as 审核人
from A表 as a
select ……
, fun_GetName(a.创建人) as 创建人
, fun_GetName(a.最后修改人) as 最后修改人
, fun_GetName(a.审核人) as 审核人
from A表 as a
如有其它的输入的限制,最好加个group,人员表对应group。
限制谁可建立/修改/审核。
A表: UserFile,CreateUserID,CreateUserName,
LastSaveUserID,LastSaveUserName,
CheckedUserID,CheckedUserName,
PrintUserID,PrintUserName在记录保存和修改时,直接把名字也存进去。
这样不用建视图来查询。
这样的数据冗余应该可以接受吧?
只要你在insert update的时候不嫌烦,就可以接收....
create or replace view v_c as
select A.UserFile,
(select B.UserName from B where B.UserID=A.CreateUserID) as UserName1,
(select B.UserName from B where B.UserID=A.LastSaveUserID) as UserName2,
(select B.UserName from B where B.UserID=A.CheckedUserID) as UserName3,
(select B.UserName from B where B.UserID=A.PrintUserID) as UserName4
from A
这种设计方式要看情况,用户id、name这么来用感觉没有必要,显得太罗嗦,
我这里这么用是一些规格编码,为了防止编码出错,把内容也加入,为了便于出错时查找原因方便
不提倡lz这种做法,不应该为了看着方便、用着顺手就这样设计,这样code的作用就没有意义了,结构也不清晰,就像我们编程一样,不能为了简便就让代码逻辑结构不清晰。
那你想得太简单了,可以在update的时候一并修改。你注意一下我的回答,update的时候需要注意一下,如果能忍受这样的代价就这么做