好得很程序员自学网

<tfoot draggable='sEl'></tfoot>

步步为营 .NET三层架构解析 二、数据库设计

步步为营 .NET三层架构解析 二、数据库设计

要开发用户管理系统,我们首先要了解需求,现在就举一个简单需求,用户表,假设有两种角色用一个字段departID来判断,管理员和员工,

我们要先建一个用户表custom和一个部门表department:

CREATE TABLE [dbo].[custom](

     [id] [ int ] IDENTITY(1,1) NOT NULL,

     [cname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     [departID] [ int ] NOT NULL,

     [age] [ int ] NOT NULL,

     [ename] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     [password] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

  CONSTRAINT [PK_custom] 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];

   

CREATE TABLE [dbo].[department](

     [id] [ int ] IDENTITY(1,1) NOT NULL,

     [departname] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NOT NULL,

     [description] [nchar](10) COLLATE Chinese_PRC_CI_AS NOT NULL,

  CONSTRAINT [PK_department] 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]

建完数据库表后,开始写存储过程,插入一条数据:

view source print ?

CREATE PROCEDURE [dbo].[spInsertCustom]

@cname nvarchar(50),

@ename nvarchar(50),

@age int ,

@departID int ,

@password nvarchar(50)

AS

BEGIN

insert into custom(cname,departID,age,ename,password) values (@cname,@departID,@age,@ename,@password)

END

   

RETURN @@Identity

view source print ?

create PROCEDURE [dbo].[spInsertDepartment]

@departname nvarchar(50),

@description nvarchar(50)

AS

BEGIN

     insert into department(departname,description)values(@departname,@description)

END

   

RETURN @@Identity

现建两个更新一条数据的存储过程:

CREATE PROCEDURE [dbo].[spupdatecustom] 

@id int ,

@cname nvarchar(50),

@departID int ,

@age int ,

@ename nvarchar(50),

@password nvarchar(50)

AS

BEGIN

     update 

        custom 

     set

     cname = @cname,

     departID = @departID,

     age = @age,

     ename = @ename,

     password = @password

     where id = @id

END

COMMIT TRAN

view source print ?

create procedure spupdatedepart

(

@departname nvarchar(50),

@description nchar(10),

@id int

)

as

UPDATE [dbo].[department]

    SET [departname] = @departname

       ,[description] = @departname

  WHERE id=@id

再新建两个取出所有用户的存储过程:

CREATE PROCEDURE [dbo].[spGetcustom]

       

AS

BEGIN

     select * from custom order by id desc

END

view source print ?

create PROCEDURE [dbo].[spGetAlldepartment]

   

AS

BEGIN

     select * from department 

END

再新建一个根据ID取出一条数据的存储过程:

view source print ?

CREATE PROCEDURE [dbo].[spGetcustomer]

@id int

AS

BEGIN

  select * from custom where id = @id

END

现建一个根据部门名取部门ID的存储过程:

view source print ?

create PROCEDURE [dbo].[spGetdepartmenter]

@departname nvarchar(50)

AS

BEGIN

     select * from department where departname = @departname

END

再建两个根据ID删除数据的存储过程:

view source print ?

create PROCEDURE [dbo].[spDeletecustom]

@id int

AS

BEGIN

      delete custom where id = @id

END

view source print ?

CREATE PROCEDURE spdeletedepart

@id int

AS

BEGIN

     delete department where id = @id

END

GO

数据库设计就建好了,这只是一个简单的示例.欢迎拍砖.

下次讲解SQLHelper的设计.

作者: Leo_wl

    

出处: http://www.cnblogs.com/Leo_wl/

    

本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。

版权信息

查看更多关于步步为营 .NET三层架构解析 二、数据库设计的详细内容...

  阅读:36次