zoukankan      html  css  js  c++  java
  • 刷卡信息上传到服务端,记录统计信息分析设计与实现。

    1.简单需求分析以及概要设计

    模拟刷卡信息实现客户端刷卡并上传到服务端,服务端记录和统计显示信息。

    一:用户资料信息

    1. 用户基本信息表:客户ID、卡号、姓名、性别、职称、身份证号、刷卡时间、所属学校等信息
    2. 刷卡记录表:ID、卡号、刷卡时间

    二:刷卡信息

    1.当用户通过卡在终端机上刷卡,产生刷卡记录并记录用户资料信息到数据库中,同时统计刷卡信息资料并统计刷卡的次数,根据刷卡时间段记录刷卡次数。

     2.根据卡号查找用户基本信息表 客户的卡号 姓名 以及刷卡系统时间

     当刷卡的时候就提取用户信息  插入一笔刷卡记录Post到服务端 ,数据信息显示到页面

    2.数据库表结构设计

                             人员基本信息表
    序号 CustermID Int primarykey(自增)
    卡号 CardNO varchar(50)  
    姓名 CustermName varchar(100)  
    性别 Sex varchar(2) 1.代表男2.代表女
    年级班级 ClassName varchar(100)  
    身份证号 SIDCard varchar(100)  
    所属学校 SchoolName varchar(1000)  
    家庭地址 HomeAddress varchar(1000)  
    职位 Professional varchar(100)  
           
           
           
           
                             刷卡记录表
    序号 RecordID Int primarykey(自增) 
    卡号 CardNO varchar(50) 外键约束
    刷卡时间 SloteCardTime datetime  

     3.数据库脚本

    USE [ICCard]
    GO
    /****** Object:  StoredProcedure [dbo].[UP_GetRecordByPage]    Script Date: 03/03/2014 13:49:38 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    CREATE PROCEDURE [dbo].[UP_GetRecordByPage]
    @tblName   varchar(255),       -- 表名 多张表是请使用 tA a inner join tB b On a.AID = b.AID 
    @PK nvarchar(128)='',    --主键,可以带表头 a.AID  
    @fldName varchar(1000) = '*', -- 需要返回的列,默认*
    @strOrder varchar(255)='',      -- 排序的字段名,必填。后面跟着排序方式,如UserName Desc ,多个排序字段用逗号分开,
    @PageSize   int = 10,          -- 页大小,默认10
    @PageIndex int = 1,           -- 开始页码,默认1
    @strWhere varchar(1500) = '', -- 查询条件 (注意: 不要加 where)
    @TotalCount int=0 output        --返回记录总数
    --@bitOrderType bit = 0,                            --排序的类型 (0为升序,1为降序)
    --@pkColumn varchar(50) = ''                   --主键名称
    
    AS
    DECLARE @strFilter nvarchar(4000)
    declare @strSQL   varchar(5000)
    declare @totalSql nvarchar(4000)--总记录数
    declare @totalPage int--总的页数  
    
    --if @strWhere !=''
    --set @strWhere=' where '+@strWhere -- 查询条件
    
    IF @strWhere IS NOT NULL AND @strWhere != ''  
      BEGIN  
       SET @strFilter = ' WHERE ' + @strWhere + ' '  
      END  
    ELSE  
      BEGIN  
       SET @strFilter = ''  
      END 
       
    if @strOrder = ''  
      set @strOrder = @PK + ' DESC '  
      
    IF @PageIndex < 1  
      SET @PageIndex = 1  
      
    if @PageIndex = 1 --第一页提高性能  
    begin   
      set @strSQL = 'select top ' + str(@PageSize) +' '+@fldName+ '  from ' + @tblName + ' ' + @strFilter + ' ORDER BY  '+ @strOrder  
      print @strSQL  
    end   
    
    else  
      begin    
        DECLARE @START_ID varchar(50)   --页开始索引  
        DECLARE @END_ID varchar(50)     --页结束索引  
        
        SET @START_ID = convert(varchar(50),(@PageIndex - 1) * @PageSize + 1)  
        SET @END_ID = convert(varchar(50),@PageIndex * @PageSize)  
          --sql语句
        set @strSQL =  ' SELECT '+@fldName+   
                    ' FROM '+  
                    ' ('+  
                        ' SELECT ROW_NUMBER() OVER(ORDER BY '+@strOrder+') AS rownum, '+@fldName+   
                        ' FROM '+@tblName+' ' +@strFilter+  
                    ' ) AS D'+  
                    ' WHERE rownum BETWEEN '+@START_ID+' AND ' +@END_ID +' ORDER BY '+@strOrder  
      END  
      --执行SQL语句
    EXEC (@strSQL)  
    
    --总条数  
    set @TotalCount=0;  
    set @totalSql = N'SELECT  @TotalCount=Count(1) FROM ' + @tblName + @strFilter  
    EXEC sp_executesql @totalSql,N'@TotalCount int out',@TotalCount out
    GO
    /****** Object:  Table [dbo].[ak_SloteCardTimes]    Script Date: 03/03/2014 13:49:40 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[ak_SloteCardTimes](
        [RecordID] [int] IDENTITY(1,1) NOT NULL,
        [CardNO] [varchar](50) NULL,
        [SloteCardTime] [datetime] NULL,
     CONSTRAINT [PK_ak_SloteCardTimes] PRIMARY KEY CLUSTERED 
    (
        [RecordID] 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].[ak_Custerms]    Script Date: 03/03/2014 13:49:40 ******/
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    SET ANSI_PADDING ON
    GO
    CREATE TABLE [dbo].[ak_Custerms](
        [CustermID] [int] IDENTITY(1,1) NOT NULL,
        [CardNO] [varchar](50) NULL,
        [CustermName] [varchar](100) NULL,
        [Sex] [varchar](2) NULL,
        [ClassName] [varchar](100) NULL,
        [SIDCard] [varchar](100) NULL,
        [SchoolName] [varchar](500) NULL,
        [HomeAddress] [varchar](500) NULL,
        [Professional] [varchar](100) NULL,
     CONSTRAINT [PK_ak_Custerms] PRIMARY KEY CLUSTERED 
    (
        [CustermID] 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
  • 相关阅读:
    旅行计划(拓扑排序)
    Extended traffic
    Tram(最短路)
    Cow and Friend(贪心)
    Invitation Cards(SPFA + 反向建边)
    Johnny and Another Rating Drop(找规律)
    python连接服务器上传文件,后台执行命令
    linux杀死某个进程
    linux安装杀毒软件
    django项目同一用户不能同时登陆
  • 原文地址:https://www.cnblogs.com/Warmsunshine/p/3587419.html
Copyright © 2011-2022 走看看