/************************************************************************/ /* 程序编写: Jeff 版 本: V 1.0 建立日期: 2015-05-23 功能说明: 满意度调查相关表; 备 注: 修改日期: 修改说明: */ /************************************************************************/ use [db] go set ansi_nulls on go set quoted_identifier on go set ansi_padding on go /************************************************************************/ /* 表 名:SatisfactionObj 暂时没用到 表描述:调查对象表(物理表); 表架构: 此表,属于第一表; 满意度调查,首先要有调查的对象; 而影楼满意度调查的对象是在订单流水线上的任何员工,商品,服务项等等; 调查对象的名称[sfnobjname]字段: 1.当[sfnobjkind]字段==0,表示的是员工部门职位(如化妆师,门市,摄影师,数据师等职位),而非具体某个员工; 2.当[sfnobjkind]字段==1,表示的是某分类的商品集合(如相框,相册,摆台等分类),而非具体某件商品(若为某个具体商品,表记录会非常多); 3.当[sfnobjkind]字段==2,当服务项没有分类时,可以为某个具体的服务项名称; [sfnobjid]字段总结: 是职位表,商品分类表,服务项(服务项若归类到商品表,可忽略)表的主键ID; [sfnobjname]字段总结: 是职位表,商品分类表,服务项(服务项若归类到商品表,可忽略)表的主键ID对应的描述字段; Remark A: 第一版数据库(V1.0)并没有[员工职位表],同时服务项也不归类到商品表中, 所以没办法使用[员工职位表]和[商品类别表]创建一个调查对象视图,否则完全可以使用这两个表创建的视图来代替; */ /************************************************************************/ if not exists(select * from dbo.sysobjects where id = object_id(N'SurveyObject') and objectproperty(id,'IsTable') = 1) begin create table [dbo].[SurveyObject]( [ObjID] [int] identity(1,1) not null, -- 调查对象ID; [SvrKind] [tinyint] not null, -- 服务类型的类别(订单中所有可能的事物):0,员工类型; 1,物品类别; 2,服务内容类别; 3,待定类别; -- 设置主键; constraint [PK_SurveyObject] primary key clustered ( [ObjID] asc ) with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off,allow_row_locks = on,allow_page_locks = on) on [primary], -- 设置UNIQUE约束键; constraint [UK_SurveyObject] unique nonclustered ( [SvrKind] asc ) with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off,allow_row_locks = on,allow_page_locks = on) on [primary] ) on [primary] end go /************************************************************************/ /* 表 名:SatisfactionSvrKind 表描述:满意项配置表(物理表); 表架构: 针对[SatisfactionObj]表每个调查对象定义的满意项内容; */ /************************************************************************/ if not exists(select * from dbo.sysobjects where id = object_id(N'SatisfactionSvrKind') and objectproperty(id,'IsTable') = 1) begin create table [dbo].[SatisfactionSvrKind]( [SvrKind] [tinyint] identity(1,1) not null, -- 服务的类别(订单中所有可能的事物):0,员工类型; 1,物品类别; 2,服务内容类别; 3,待定类别; -- 1,门市 2,接待 3,化妆 4,摄影 5,数码 6,选片 7,产品 8,物品类别 9,服务内容类别 [KindName] [nvarchar](24) not null, -- 类型名,如:门市, 接待, 化妆, 摄影... [KindDesc] [nvarchar](512) null, -- 类型描述; -- 设置主键; constraint [PK_SatisfactionSvrKind] primary key clustered ( [SvrKind] asc ) with (pad_index = off, statistics_norecompute = off, ignore_dup_key = off,allow_row_locks = on,allow_page_locks = on) on [primary] ) on [primary] end go /************************************************************************/ /* 表 名:SatisfactionCfg 表描述:满意项配置表(物理表); 表架构: 针对[SatisfactionObj]表每个调查对象定义的满意项内容; */ /************************************************************************/ if not exists(select * from dbo.sysobjects where id = object_id(N'SatisfactionCfg') and objectproperty(id,'IsTable') = 1) begin CREATE TABLE [dbo].[SatisfactionCfg]( [cfgID] [int] IDENTITY(1,1) NOT NULL, -- 配置项ID [SvrKind] [tinyint] NOT NULL, -- 服务的类别(订单中所有可能的事物):0,员工类型; 1,物品类别; 2,服务内容类别; 3,待定类别; -- 1,门市 2,接待 3,化妆 4,摄影 5,数码 6,选片 7,产品 8,物品类别 9,服务内容类别 [KindName] [nvarchar](24) NOT NULL, -- 类型名,如:门市, 接待, 化妆, 摄影... [MaxScore] [tinyint] NOT NULL DEFAULT ((1)), -- 自定义满意项指数值(最高分数值); [TypeID] [tinyint] NOT NULL DEFAULT ((1)), -- 评分类型 [IsEnable] [tinyint] NOT NULL DEFAULT ((1)), -- 自定义满意项是否启用;(1可用,0不可用) [sfncfgDesc] [nvarchar](512) NULL, -- 自定义满意项描述; CONSTRAINT [PK_SatisfactionCfg] PRIMARY KEY CLUSTERED ( [cfgID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] end go /************************************************************************/ /* 表 名:SatisfactionScoreType 表描述:评分类型(物理表);如:按分数(1),中文(2),图形(3) 表架构: 对[SatisfactionObj]的每条评分的分数表现类型 */ /************************************************************************/ if not exists(select * from dbo.sysobjects where id = object_id(N'SatisfactionScoreType') and objectproperty(id,'IsTable') = 1) begin CREATE TABLE [dbo].[SatisfactionScoreType]( [TypeID] [tinyint] IDENTITY(1,1) NOT NULL, -- ID [TypeName] [nvarchar](16) NOT NULL, -- 类型名 [Section1] [tinyint] NOT NULL DEFAULT ((0)), -- 得分段<60, 60~89, 90~100 [Section2] [tinyint] NOT NULL DEFAULT ((0)), -- 得分段<60, 60~89, 90~100 [Section3] [tinyint] NOT NULL DEFAULT ((0)), -- 得分段<60, 60~89, 90~100 [Section4] [tinyint] NOT NULL DEFAULT ((0)), -- 得分段<60, 60~89, 90~100 [Section5] [tinyint] NOT NULL DEFAULT ((0)), -- 得分段<60, 60~89, 90~100 -- 设置主键; CONSTRAINT [PK_SatisfactionScoreType] PRIMARY KEY CLUSTERED ( [TypeID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] end go /************************************************************************/ /* 表 名:SatisfactionSurvey 表描述:满意度调查记录表 (员工+商品+服务满意度记录表); 表架构: 实际的调查对象,不仅员工,也有物品,服务内容; Remark A: V1.0版本数据库或者后来版本的,于该表都是通过触发器来自动生成满意度记录表; */ /************************************************************************/ if not exists(select * from dbo.sysobjects where id = object_id(N'SatisfactionSurvey') and objectproperty(id,'IsTable') = 1) begin CREATE TABLE [dbo].[SatisfactionSurvey]( [SurveyLogID] [int] IDENTITY(1,1) NOT NULL, -- 调查记录ID [cfgID] [int] NOT NULL, -- 配置项ID [ObjID] [nvarchar](50) NOT NULL, -- 调查对象ID; [ObjName] [nvarchar](50) NOT NULL, -- 调查对象 [OrderID] [nvarchar](50) NOT NULL, -- 订单号 [Score] [int] NOT NULL, -- 得分 [State] [nvarchar](24) NOT NULL, -- 状态 [SurveyTime] [nvarchar](24) NULL, -- 调查日期; [SurveyCS] [nvarchar](24) NULL, -- 执行调查的客服; CONSTRAINT [PK_SatisfactionSurvey] PRIMARY KEY CLUSTERED ( [SurveyLogID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY], CONSTRAINT [UK_SatisfactionSurvey] UNIQUE NONCLUSTERED ( [SurveyLogID] ASC )WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY] ) ON [PRIMARY] end go set ansi_padding off