系列目錄
工作流在實際應用中還是比較廣泛,網絡中存在很多工作流的圖形化插件,可以做到拉拽的工作流設計,非常簡便,再配合第三方編輯器,可以直接生成表單,我沒有刻意的瀏覽很多工作流的實際設計,我認為工作流只要有動態可修改的流轉,有時可按角色,部門,上級或者職位流轉即是比較好的正常工作流!這里只帶給一個思路的簡單工作流...
工作流其實有幾種,也可以設計得很簡單:
1.固定的工作流,很小的公司,很固定的流程!
2.自定義表單和字段,有時候可以校驗表單
3.自定義流轉的人員,即按角色流轉,用戶每一次提交工作流都必須在步驟中添加要轉的人員
4.直接設置職位和部門,然后根據人員所屬的部門、職位或者上級進行流轉
上面可以是一個交集,只有4點合起來才能做一個比較動態的工作流,否則可以直接用固定的工作流即可
這是本次要做的一般大眾化工作流
當生成表單之后,用戶將直接用此表單的模版,並提交公文到下一步,最后流程完成后,反饋給發起人
數據庫的設計也有這巧妙之處
Flow_Form:表單模版
Flow_FormAttr:表單字段
Flow_Step:表單的流轉步驟,如請假天數小於3天直接上級審批,大於3天需要進行第二步的老總審批
Flow_StepRule:根據字段決定流轉的條件
Flow_StepState:正在進行的步驟狀態,如第一步是否完成
Flow_Type:工作流種類,如行政管理
Flow_FormCentent:根據模版提交的內容
Flow_FormContentStepCheck:步驟總狀態
Flow_FormContentStepCheckState:步驟的細分狀態

USE [AppDB] GO /****** Object: Table [dbo].[Flow_Type] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_Type]( [Id] [varchar](50) NOT NULL, [Name] [varchar](50) NOT NULL, [Remark] [varchar](500) NULL, [CreateTime] [datetime] NOT NULL, [Sort] [int] NOT NULL, CONSTRAINT [PK_Flow_Type] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'類別' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Type', @level2type=N'COLUMN',@level2name=N'Name' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'說明' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Type', @level2type=N'COLUMN',@level2name=N'Remark' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'創建時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Type', @level2type=N'COLUMN',@level2name=N'CreateTime' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'排序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Type', @level2type=N'COLUMN',@level2name=N'Sort' GO /****** Object: Table [dbo].[Flow_Seal] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_Seal]( [Id] [varchar](50) NOT NULL, [Path] [varchar](200) NULL, [CreateTime] [datetime] NULL, [Using] [varchar](4000) NULL, CONSTRAINT [PK_Flow_Seal] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'使用者' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Seal', @level2type=N'COLUMN',@level2name=N'Using' GO /****** Object: Table [dbo].[Flow_FormAttr] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_FormAttr]( [Id] [varchar](50) NOT NULL, [Title] [varchar](50) NOT NULL, [Name] [varchar](50) NOT NULL, [AttrType] [varchar](50) NOT NULL, [CheckJS] [varchar](500) NULL, [TypeId] [varchar](50) NOT NULL, [CreateTime] [datetime] NULL, [OptionList] [varchar](500) NULL, [IsValid] [bit] NULL, CONSTRAINT [PK_Flow_FormAttr] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'Id' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'字段標題' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'Title' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'字段英文名稱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'Name' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'文本,日期,數字,多行文本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'AttrType' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'校驗腳本' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'CheckJS' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所屬類別' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'TypeId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'下拉框的值' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'OptionList' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否必填' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormAttr', @level2type=N'COLUMN',@level2name=N'IsValid' GO /****** Object: Table [dbo].[Flow_Form] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_Form]( [Id] [varchar](50) NOT NULL, [Name] [varchar](100) NOT NULL, [Remark] [varchar](500) NULL, [UsingDep] [varchar](2000) NULL, [TypeId] [varchar](50) NOT NULL, [State] [bit] NOT NULL, [CreateTime] [datetime] NULL, [HtmlForm] [text] NULL, [AttrA] [varchar](50) NULL, [AttrB] [varchar](50) NULL, [AttrC] [varchar](50) NULL, [AttrD] [varchar](50) NULL, [AttrE] [varchar](50) NULL, [AttrF] [varchar](50) NULL, [AttrG] [varchar](50) NULL, [AttrH] [varchar](50) NULL, [AttrI] [varchar](50) NULL, [AttrJ] [varchar](50) NULL, [AttrK] [varchar](50) NULL, [AttrL] [varchar](50) NULL, [AttrM] [varchar](50) NULL, [AttrN] [varchar](50) NULL, [AttrO] [varchar](50) NULL, [AttrP] [varchar](50) NULL, [AttrQ] [varchar](50) NULL, [AttrR] [varchar](50) NULL, [AttrS] [varchar](50) NULL, [AttrT] [varchar](50) NULL, [AttrU] [varchar](50) NULL, [AttrV] [varchar](50) NULL, [AttrW] [varchar](50) NULL, [AttrX] [varchar](50) NULL, [AttrY] [varchar](50) NULL, [AttrZ] [varchar](50) NULL, CONSTRAINT [PK_Flow_Form] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否完成流程' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Form', @level2type=N'COLUMN',@level2name=N'State' GO /****** Object: Table [dbo].[Flow_Step] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_Step]( [Id] [varchar](50) NOT NULL, [Name] [varchar](50) NOT NULL, [Remark] [varchar](500) NULL, [Sort] [int] NOT NULL, [FormId] [varchar](50) NOT NULL, [FlowRule] [varchar](50) NOT NULL, [IsCustom] [bit] NOT NULL, [IsAllCheck] [bit] NOT NULL, [Execution] [varchar](4000) NULL, [CompulsoryOver] [bit] NOT NULL, [IsEditAttr] [bit] NOT NULL, CONSTRAINT [PK_Flow_Step] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'步驟名稱' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'Name' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'步驟說明' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'Remark' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'排序' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'Sort' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所屬表單' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'FormId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'流轉規則' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'FlowRule' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'該流程的 發起人/創建者 是否可以 自行選擇 該步驟的審批者' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'IsCustom' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'當規則或者角色被選擇為多人時候,是否啟用多人審核才通過' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'IsAllCheck' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'執行者與規則對應' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'Execution' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'是否可以強制完成整個流程' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'CompulsoryOver' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'審核者是否可以編輯發起者的附件' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_Step', @level2type=N'COLUMN',@level2name=N'IsEditAttr' GO /****** Object: Table [dbo].[Flow_FormContent] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_FormContent]( [Id] [varchar](50) NOT NULL, [Title] [varchar](200) NOT NULL, [UserId] [varchar](50) NOT NULL, [FormId] [varchar](50) NOT NULL, [FormLevel] [varchar](50) NOT NULL, [CreateTime] [datetime] NOT NULL, [AttrA] [varchar](2048) NULL, [AttrB] [varchar](2048) NULL, [AttrC] [varchar](2048) NULL, [AttrD] [varchar](2048) NULL, [AttrE] [varchar](2048) NULL, [AttrF] [varchar](2048) NULL, [AttrG] [varchar](2048) NULL, [AttrH] [varchar](2048) NULL, [AttrI] [varchar](2048) NULL, [AttrJ] [varchar](2048) NULL, [AttrK] [varchar](2048) NULL, [AttrL] [varchar](2048) NULL, [AttrM] [varchar](2048) NULL, [AttrN] [varchar](2048) NULL, [AttrO] [varchar](2048) NULL, [AttrP] [varchar](2048) NULL, [AttrQ] [varchar](2048) NULL, [AttrR] [varchar](2048) NULL, [AttrS] [varchar](2048) NULL, [AttrT] [varchar](2048) NULL, [AttrU] [varchar](2048) NULL, [AttrV] [varchar](2048) NULL, [AttrW] [varchar](2048) NULL, [AttrX] [varchar](2048) NULL, [AttrY] [varchar](2048) NULL, [AttrZ] [varchar](2048) NULL, [CustomMember] [varchar](4000) NULL, [TimeOut] [datetime] NOT NULL, CONSTRAINT [PK_Flow_FormContent] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContent', @level2type=N'COLUMN',@level2name=N'Id' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'發起用戶' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContent', @level2type=N'COLUMN',@level2name=N'UserId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'對應表單' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContent', @level2type=N'COLUMN',@level2name=N'FormId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'公文級別' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContent', @level2type=N'COLUMN',@level2name=N'FormLevel' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'創建時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContent', @level2type=N'COLUMN',@level2name=N'CreateTime' GO /****** Object: Table [dbo].[Flow_FormContentStepCheck] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_FormContentStepCheck]( [Id] [varchar](50) NOT NULL, [ContentId] [varchar](50) NOT NULL, [StepId] [varchar](50) NOT NULL, [State] [int] NOT NULL, [StateFlag] [bit] NOT NULL, [CreateTime] [datetime] NOT NULL, [IsEnd] [bit] NOT NULL, CONSTRAINT [PK_Flow_StepState] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'ID' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContentStepCheck', @level2type=N'COLUMN',@level2name=N'Id' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'所屬公文' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContentStepCheck', @level2type=N'COLUMN',@level2name=N'ContentId' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'0不通過1通過2審核中' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContentStepCheck', @level2type=N'COLUMN',@level2name=N'State' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'true此步驟審核完成' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContentStepCheck', @level2type=N'COLUMN',@level2name=N'StateFlag' GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'創建時間' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContentStepCheck', @level2type=N'COLUMN',@level2name=N'CreateTime' GO /****** Object: Table [dbo].[Flow_StepRule] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_StepRule]( [Id] [varchar](50) NOT NULL, [StepId] [varchar](50) NOT NULL, [AttrId] [varchar](50) NOT NULL, [Operator] [varchar](10) NOT NULL, [Result] [varchar](50) NOT NULL, [NextStep] [varchar](50) NULL, CONSTRAINT [PK_Flow_StepRule] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO /****** Object: Table [dbo].[Flow_FormContentStepCheckState] Script Date: 03/21/2015 22:36:52 ******/ SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO SET ANSI_PADDING ON GO CREATE TABLE [dbo].[Flow_FormContentStepCheckState]( [Id] [varchar](50) NOT NULL, [StepCheckId] [varchar](50) NOT NULL, [UserId] [varchar](50) NOT NULL, [CheckFlag] [int] NOT NULL, [Reamrk] [varchar](2000) NULL, [TheSeal] [varchar](50) NULL, [CreateTime] [datetime] NOT NULL, CONSTRAINT [PK_Flow_FormContentStepCheckState] PRIMARY KEY CLUSTERED ( [Id] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] GO SET ANSI_PADDING OFF GO EXEC sys.sp_addextendedproperty @name=N'MS_Description', @value=N'1通過0不通過2審核中' , @level0type=N'SCHEMA',@level0name=N'dbo', @level1type=N'TABLE',@level1name=N'Flow_FormContentStepCheckState', @level2type=N'COLUMN',@level2name=N'CheckFlag' GO /****** Object: Default [DF_Flow_FormContent_DrafText_Time] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormContent] ADD CONSTRAINT [DF_Flow_FormContent_DrafText_Time] DEFAULT (getdate()) FOR [CreateTime] GO /****** Object: ForeignKey [FK_Flow_Form_Flow_Type] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_Form] WITH CHECK ADD CONSTRAINT [FK_Flow_Form_Flow_Type] FOREIGN KEY([TypeId]) REFERENCES [dbo].[Flow_Type] ([Id]) GO ALTER TABLE [dbo].[Flow_Form] CHECK CONSTRAINT [FK_Flow_Form_Flow_Type] GO /****** Object: ForeignKey [FK_Flow_FormAttr_Flow_Type] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormAttr] WITH CHECK ADD CONSTRAINT [FK_Flow_FormAttr_Flow_Type] FOREIGN KEY([TypeId]) REFERENCES [dbo].[Flow_Type] ([Id]) GO ALTER TABLE [dbo].[Flow_FormAttr] CHECK CONSTRAINT [FK_Flow_FormAttr_Flow_Type] GO /****** Object: ForeignKey [FK_Flow_FormContent_Flow_Form] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormContent] WITH CHECK ADD CONSTRAINT [FK_Flow_FormContent_Flow_Form] FOREIGN KEY([FormId]) REFERENCES [dbo].[Flow_Form] ([Id]) GO ALTER TABLE [dbo].[Flow_FormContent] CHECK CONSTRAINT [FK_Flow_FormContent_Flow_Form] GO /****** Object: ForeignKey [FK_Flow_FormContent_SysUser] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormContent] WITH CHECK ADD CONSTRAINT [FK_Flow_FormContent_SysUser] FOREIGN KEY([UserId]) REFERENCES [dbo].[SysUser] ([Id]) GO ALTER TABLE [dbo].[Flow_FormContent] CHECK CONSTRAINT [FK_Flow_FormContent_SysUser] GO /****** Object: ForeignKey [FK_Flow_StepState_Flow_StepState] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormContentStepCheck] WITH CHECK ADD CONSTRAINT [FK_Flow_StepState_Flow_StepState] FOREIGN KEY([ContentId]) REFERENCES [dbo].[Flow_FormContent] ([Id]) GO ALTER TABLE [dbo].[Flow_FormContentStepCheck] CHECK CONSTRAINT [FK_Flow_StepState_Flow_StepState] GO /****** Object: ForeignKey [FK_Flow_FormContentStepCheckState_Flow_FormContentStepCheck] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormContentStepCheckState] WITH CHECK ADD CONSTRAINT [FK_Flow_FormContentStepCheckState_Flow_FormContentStepCheck] FOREIGN KEY([StepCheckId]) REFERENCES [dbo].[Flow_FormContentStepCheck] ([Id]) GO ALTER TABLE [dbo].[Flow_FormContentStepCheckState] CHECK CONSTRAINT [FK_Flow_FormContentStepCheckState_Flow_FormContentStepCheck] GO /****** Object: ForeignKey [FK_Flow_FormContentStepCheckState_SysUser] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_FormContentStepCheckState] WITH CHECK ADD CONSTRAINT [FK_Flow_FormContentStepCheckState_SysUser] FOREIGN KEY([UserId]) REFERENCES [dbo].[SysUser] ([Id]) GO ALTER TABLE [dbo].[Flow_FormContentStepCheckState] CHECK CONSTRAINT [FK_Flow_FormContentStepCheckState_SysUser] GO /****** Object: ForeignKey [FK_Flow_Step_Flow_Form] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_Step] WITH CHECK ADD CONSTRAINT [FK_Flow_Step_Flow_Form] FOREIGN KEY([FormId]) REFERENCES [dbo].[Flow_Form] ([Id]) GO ALTER TABLE [dbo].[Flow_Step] CHECK CONSTRAINT [FK_Flow_Step_Flow_Form] GO /****** Object: ForeignKey [FK_Flow_StepRule_Flow_Step] Script Date: 03/21/2015 22:36:52 ******/ ALTER TABLE [dbo].[Flow_StepRule] WITH CHECK ADD CONSTRAINT [FK_Flow_StepRule_Flow_Step] FOREIGN KEY([StepId]) REFERENCES [dbo].[Flow_Step] ([Id]) GO ALTER TABLE [dbo].[Flow_StepRule] CHECK CONSTRAINT [FK_Flow_StepRule_Flow_Step] GO