2.  现有实现以下功能,简单设计一个系统实现其需求
    有 1000+ 网吧的上用户下机信息通过一个接口(函数)传递到系统
    形如:      上下机信息
        
            cardcode        上网卡号(小于10位)
            password        上网卡密码
            cardtype        上网卡类型(0-临时;1-正式)
            name            上网人员姓名
            idcode          证件号码
            idtype          证件类型
            sex             性别
            nation          民族
            born            生日(YYYYMMDD)
            address         单位
            org             证件签发单位
            timestamp       上机(或下机)时间
            type            上下机类型(1-上机;2-下机)
            ip              在网吧上下机的内网IP
            host            在网吧上下机的主机名
            netbar          网吧编号(5位字符串)
            
            以上各参数都为字符串        def report(cardcode, password, cardtype, name, idcode, idtype, sex, nation, born, address, org, timestamp, type, ip, host, netbar):
            pass    在网吧的每次上机或下机都会调用此函数
    现在需要通过此函数将上下机信息保存到数据库中,供查询
    查询条件有 cardcode, cardtype, name, idcode, idtype, sex, timestamp, type, netbar
    
    设计数据库结构需要注意的问题 上下机的数据量会比较大,为了提高空间利用率,尽量减少数据冗余,
    同时需要考虑查询效率
    
    给出 数据库的结构粗略设计(分哪些表,表中的主要字段,关联关系)
    以及 report 函数对数据存取的流程(伪代码即可)

解决方案 »

  1.   

    两个表如下。
    上网卡信息表 (上网卡号,上网卡密码,上网卡类型,上网人员姓名,证件号码,性别,民族,生日,单位,证件签发单位)
    上机信息表 (上网卡号,上机(或下机)时间,上下机类型,在网吧上下机的内网IP,在网吧上下机的主机名,网吧编号)
    不过最好你能给出样例数据或ER图,其它人其实并不了解网吧的管理。我上面也是猜的。
      

  2.   

    上网信息:
    cardcode        上网卡号(小于10位) 
    password        上网卡密码 
    cardtype        上网卡类型(0-临时;1-正式)
    timestamp      上机(或下机)时间 
    type            上下机类型(1-上机;2-下机) 
    ip              在网吧上下机的内网IP 
    host            在网吧上下机的主机名 
    netbar          网吧编号(5位字符串)
    人员信息:
    cardcode        上网卡号(小于10位) 
    name            上网人员姓名 
    idcode          证件号码 
    idtype          证件类型 
    sex            性别 
    nation          民族 
    born            生日(YYYYMMDD) 
    address        单位 
    org            证件签发单位
      

  3.   

    我是这样想的,大家觉得怎么样:可以先分卡的信息表,人的信息表和上网的信息表;人的信息和卡的信息用证件号码关联,卡的信息和上网的信息用卡号关联
                方案分析:
                1.空间效率:暂行
                2.写入效率:上机时需要写3张表, 下机时只需要写上网信息表;其中上下机的时间处理,对于一次上下机的完成,只写入一条数据,上机时间,下机时间为2个不同的字段,
                                        上机时写入上机时间,下机时间不写,用上下机类型来识别,上机类型为1,则表示还未下机,直到下机,则写为2,并写入下机时间,表示一次上下机的完成,则便于下机查找。
                3.查找效率:需要查找3张表
                字段描述:
                1.CardInfo(卡的信息表):
                    cardcode(primary key)    password    cardtype    idcode
                2.UserInfo(持卡人的信息表):
                    name    idcode(primary key,key references)    dtype    sex    nation    born    address    org
                3.ActionInfo(上网信息表):
                    timestamp    type    ip    host    netbar    idcode(primary key,key references)