菜单及权限,以及工作流的数据库设计

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_menu]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[t_menu] GO
CREATE TABLE [dbo].[t_menu] (  [ID] [int] NOT NULL ,     *主键 
[F1] [int] NULL ,                                        *子类的id 吗 
[F1NAME] [char] (50) COLLATE Chinese_PRC_CI_AS NULL ,    *子类的名称 
[F2] [int] NULL ,                                        *父类的
id  [F2NAME] [char] (50) COLLATE Chinese_PRC_CI_AS NULL      * 父类的名称 )
ON [PRIMARY] GO

数据如下:
 1  部门一                                             1 dev1                                 

           
 2 2 科室2                                              1 DEV1                                 

           
 3 3 科室3                                              1 DEV1                                 

           
 4 4 科室4                                              1 DEV1                                 

           
 5  部门二                                             2 DEV2                                 

           
 6 5 科室5                                              2 DEV2                                 

           
 7 6 科室6                                              2 DEV2                                 

                                                      

-------------------------------------------------------------------------------------------------

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_menu_detail]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[t_menu_detail] GO

CREATE TABLE [dbo].[t_menu_detail] ( 
[id] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,   *主键 
[nameid] [int] NULL ,                                   *对应人员表的id号 
[menuid] [int] NULL                                     *对应t_menu 的id号 )
 ON [PRIMARY] GO

数据:

  1          1 1
 2          1 2
 3          2 5
 4          2 6
 5          2 7
 6          1 4
 7          1 3
---------------------------------------------------------------------

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_person]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[t_person] GO

CREATE TABLE [dbo].[t_person] ( 
[id] [int] NOT NULL ,                               *人员表,比较简单 
[name] [char] (20) COLLATE Chinese_PRC_CI_AS NULL ,
 [sex] [char] (10) COLLATE Chinese_PRC_CI_AS NULL )
ON [PRIMARY] GO

数据:

 1 cf                   m        
 2 wm                   w        
--------------------------------------------------------------------------

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_workflow]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[t_workflow] GO

CREATE TABLE [dbo].[t_workflow] ( 
[id] [int] NOT NULL ,                                         *工作流的主表,id 
[workflowname] [char] (50) COLLATE Chinese_PRC_CI_AS NULL )   *名称
ON [PRIMARY] GO

数据:

 1 工作标准流程                                     
 2 测试流程                                                                               

  -------------------------------------------------------------------------------------------------

if exists (select * from dbo.sysobjects where id = object_id(N'[dbo].[t_workflow_detail]')
and OBJECTPROPERTY(id, N'IsUserTable') = 1) drop table [dbo].[t_workflow_detail] GO

CREATE TABLE [dbo].[t_workflow_detail] (  [id] [int] NOT NULL ,          *主键 
[workflow_id] [int] NULL ,                                               *对应工作流主表的id吗 
[first_station] [char] (10)COLLATE Chinese_PRC_CI_AS NULL ,              *开始站 
[first_status] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,             *开始站时的状态 
[next_station] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,              *下一人是谁 
[next_status] [char] (10) COLLATE Chinese_PRC_CI_AS NULL)                *下一站的状态                
 ON [PRIMARY] GO

数据:

 1 1 A          0          B          1        
 2 1 B          1          C          2        
 3 1 C          2          D          3        
 
=========================================================

select t1.id, t1.f1, t1.f1name, t1.f2, t1.f2name
    from t_menu as t1, t_menu_detail as t2, t_person as t3
   where t1.id = t2.menuid
     and t2.nameid = t3.id
     and t3.id = '1'

这一段可以查出人员id号为'1'的人,菜单.

===========================================================

工作流的说明:

  t_workflow为工作流的主表.  
   t_workflow_detail为明细表. 按照工作流主表id吗,可以关联到工作流明细表中去.
   (用工作流主表的id对应找到工作注明细表的workflow_id,可以找到流程的所有过程,
   如果要找当前人的信念流程,first_station 这个和人员表的人员id关联就可以.)

 

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值