--连接主数据库 use Master go --如果数据库simpleoa 存在,则先删除simpleoa。 if exists (select * from sysdatabases where name='simpleoa') drop database simpleoa go --创建simpleoa数据库 create database simpleoa go -- use simpleoa go --创建用户表 create table [dbo].[User] ( [UserID] int Identity(1,1) not null,--用户ID [UserLoginName] nvarchar(20) not null, --用户登录名 [UserName] nvarchar(20) not null, --用户姓名 [UserPassword] nvarchar(20) not null, --用户密码 [UserRegister] nvarchar(20) default getdate(), --用户注册时间 [UserUp] bit default 'true', --是否需要上交 [UserInfo] nvarchar(200) not null --备注 -- ) alter table [dbo].[User] add constraint pk_user primary key(UserID); go --创建部门表 create table [dbo].[Department] ( [DepartmentID] [int] identity(1,1) not null, --部门ID [DepartmentNum] [nvarchar](20) not null, --部门编号 [DepartmentName] [nvarchar](20) not null, --部门名称 [UserID] [int] not null, --部门负责人ID [DepartmentInfo] [nvarchar](200) not null --部门备注 ) alter table [dbo].[Department] add constraint pk_department primary key(DepartmentID); go --添加外键约束 --alter table Department add constraint dep_ref_use foreign key(UserID) references [dbo].[User](UserID) --go --创建消息表 create table [dbo].[Message] ( [MessageID] [int] identity(1,1) not null, --消息ID [MessageSender] [int] not null, --外键 [MessageSubject] [nvarchar](50) default getdate(), --消息主题 [MessageBody] [nvarchar](500) not null, --消息内容 [MessageDataTime] [datetime] default getdate(), --发送消息时间 [MessageAttachment] [bit] default 'false' --是否含有附件 ) alter table [dbo].[Message] add constraint pk_MessageID primary key (MessageID); go --消息接收人表: create table [dbo].[Recipient] ( [RecipientID] [int] identity(1,1) not null, --接收人ID [MessageID] [int] not null, --外键 [RecipientRead] [bit] not null, --是否读过 [RecipientDel] [bit] not null, --是否删除(显示在已删除消息栏) [RecipientReadTime] [nvarchar](20) default '尚未阅读', --客户要求能看到接收人是否已经看过。 [RecipientDelTime] [nvarchar](20) default '尚未删除', --储存删除消息时间 [RecipientAllDel] [nvarchar](20) default '尚未彻底删除'--不再显示在已删除消息栏 ) alter table [dbo].[Recipient] add constraint pk_recipient primary key(RecipientID); go --附件表 create table [dbo].[Attachment] ( AttachmentID [int] identity(1,1), --附件ID AttachmentName [nvarchar](50) not null, --附件名称 AttachmentFilePath [nvarchar](100) not null, --附件存放类型 AttachmentType [nvarchar](20) not null, --附件文件类型 AttachmentDateTime [datetime] not null, --附件上传时间 AttachmentSource [nvarchar](20) not null, --附件来源:消息、文章、上交? AttachmentSourceID [int] not null, --附件来源ID ) alter table [dbo].[Attachment] add constraint pk_Attachment primary key(AttachmentID) go --每月上传时间表 create table [dbo].[Time] ( TimeID [int] identity(1,1), --表时间ID TimeName [nvarchar](20) not null, --时间变量名 TimeContent [datetime] default getdate() --时间变量值 ) alter table [dbo].[Time] add constraint pk_timeid primary key(TimeID) go
--连接主数据库
use Master
go
--如果数据库simpleoa 存在,则先删除simpleoa。
if exists (select * from sysdatabases where name='simpleoa')
drop database simpleoa
go
--创建simpleoa数据库
create database simpleoa
go
--
use simpleoa
go
--创建用户表
create table [dbo].[User]
(
[UserID] int Identity(1,1) not null,--用户ID
[UserLoginName] nvarchar(20) not null, --用户登录名
[UserName] nvarchar(20) not null, --用户姓名
[UserPassword] nvarchar(20) not null, --用户密码
[UserRegister] nvarchar(20) default getdate(), --用户注册时间
[UserUp] bit default 'true', --是否需要上交
[UserInfo] nvarchar(200) not null --备注 --
)
alter table [dbo].[User] add constraint pk_user primary key(UserID);
go
--创建部门表
create table [dbo].[Department]
(
[DepartmentID] [int] identity(1,1) not null, --部门ID
[DepartmentNum] [nvarchar](20) not null, --部门编号
[DepartmentName] [nvarchar](20) not null, --部门名称
[UserID] [int] not null, --部门负责人ID
[DepartmentInfo] [nvarchar](200) not null --部门备注
)
alter table [dbo].[Department] add constraint pk_department primary key(DepartmentID);
go
--添加外键约束
--alter table Department add constraint dep_ref_use foreign key(UserID) references [dbo].[User](UserID)
--go
--创建消息表
create table [dbo].[Message]
(
[MessageID] [int] identity(1,1) not null, --消息ID
[MessageSender] [int] not null, --外键
[MessageSubject] [nvarchar](50) default getdate(), --消息主题
[MessageBody] [nvarchar](500) not null, --消息内容
[MessageDataTime] [datetime] default getdate(), --发送消息时间
[MessageAttachment] [bit] default 'false' --是否含有附件
)
alter table [dbo].[Message] add constraint pk_MessageID primary key (MessageID);
go
--消息接收人表:
create table [dbo].[Recipient]
(
[RecipientID] [int] identity(1,1) not null, --接收人ID
[MessageID] [int] not null, --外键
[RecipientRead] [bit] not null, --是否读过
[RecipientDel] [bit] not null, --是否删除(显示在已删除消息栏)
[RecipientReadTime] [nvarchar](20) default '尚未阅读', --客户要求能看到接收人是否已经看过。
[RecipientDelTime] [nvarchar](20) default '尚未删除', --储存删除消息时间
[RecipientAllDel] [nvarchar](20) default '尚未彻底删除'--不再显示在已删除消息栏
)
alter table [dbo].[Recipient] add constraint pk_recipient primary key(RecipientID);
go
--附件表
create table [dbo].[Attachment]
(
AttachmentID [int] identity(1,1), --附件ID
AttachmentName [nvarchar](50) not null, --附件名称
AttachmentFilePath [nvarchar](100) not null, --附件存放类型
AttachmentType [nvarchar](20) not null, --附件文件类型
AttachmentDateTime [datetime] not null, --附件上传时间
AttachmentSource [nvarchar](20) not null, --附件来源:消息、文章、上交?
AttachmentSourceID [int] not null, --附件来源ID
)
alter table [dbo].[Attachment] add constraint pk_Attachment primary key(AttachmentID)
go
--每月上传时间表
create table [dbo].[Time]
(
TimeID [int] identity(1,1), --表时间ID
TimeName [nvarchar](20) not null, --时间变量名
TimeContent [datetime] default getdate() --时间变量值
)
alter table [dbo].[Time] add constraint pk_timeid primary key(TimeID)
go
1,消息模块设计:
方案一:A给B,C,D发送信息,则在消息表中生成3条信息,接收人分别是B,C,D,并有Bool表示是否查看过。
方案二:A给B,C,D发送信息,在表A中生成一条信息 ,表B中保存消息ID,和接收人分别是B,C,D的3条信息。(优点,当消息字数多时,能有效节省数据库空间)
关于消息附件:设计表FuJianBiao ,每个附件记录引用消息表ID,可实现一条消息附带多条附件。
2,用户及权限模块设计:
用户角色表关联用户表和角色表,角色功能表关联角色表和功能表,都是多对多关系。每个用户有多个角色,每个角色也有多个用户;每个角色有多个功能,每个功能可以对应多个角色,由于该项目对权限要求明确而且很简单,所以不必这样设计用户权限系统。简单合适就好。
3,部门管理模块(管理员)设计
设计部门表
4,文档上传管理模块:
5,服务器文件管理模块: