zoukankan      html  css  js  c++  java
  • 步步为营 .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]
    建完数据库表后,开始写存储过程,插入一条数据:
    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
    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
    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
    create PROCEDURE [dbo].[spGetAlldepartment]
      
    AS
    BEGIN
        select * from department 
    END

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

    CREATE PROCEDURE [dbo].[spGetcustomer]
    @id int
    AS
    BEGIN
     select * from custom where id = @id
    END

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

    create PROCEDURE [dbo].[spGetdepartmenter]
    @departname nvarchar(50)
    AS
    BEGIN
        select * from department where departname = @departname
    END

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

    create PROCEDURE [dbo].[spDeletecustom]
    @id int
    AS
    BEGIN
         delete custom where id = @id
    END
    CREATE PROCEDURE spdeletedepart
    @id int
    AS
    BEGIN
        delete department where id = @id
    END
    GO

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

    下次讲解SQLHelper的设计.

  • 相关阅读:
    性能测试-地铁模型分析
    如何测试网页登录页面
    软件测试修炼之道(转载)
    每当在测试之路迷茫的时候来看看这篇文章
    软件测试博客较好的网址(供参考)
    Spring扩展:替换IOC容器中的Bean组件 -- @Replace注解
    拯救老旧工程,记桥接SpringMVC与Stripes框架
    Netty实现WebSocket,URI参数问题
    高性能内存队列Disruptor--原理分析
    Idea中Smart Tomcat插件启动报NullPointerException问题
  • 原文地址:https://www.cnblogs.com/Leo_wl/p/1992078.html
Copyright © 2011-2022 走看看