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 函数对数据存取的流程(伪代码即可)
有 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 函数对数据存取的流程(伪代码即可)
解决方案 »
- 向【ACMAIN_CHM】提问...
- 新手提问 建表
- 如何统计栏目下的文档数量
- mysql_real_connect函数简单问题 !
- (YEAR(death)-YEAR(birth)) - (RIGHT(death,5)<RIGHT(birth,5))什么意思?
- 我好笨....用MySQL作本地数据库可以吗?
- ?mysql 的phpMyAdmin不可用,报错Can't connect to local MySQL server through socket '/tmp/mysql.sock'(2)
- 哪位大虾能出手相救,不胜感谢啊!
- 为何这句sql在oracle没问题,而在mysql就有问题
- 谁帮我看看这个1064错误是啥原因
- 关于insert语句的兼容问题
- SQL语句如何查询数据同时又统计条数
上网卡信息表 (上网卡号,上网卡密码,上网卡类型,上网人员姓名,证件号码,性别,民族,生日,单位,证件签发单位)
上机信息表 (上网卡号,上机(或下机)时间,上下机类型,在网吧上下机的内网IP,在网吧上下机的主机名,网吧编号)
不过最好你能给出样例数据或ER图,其它人其实并不了解网吧的管理。我上面也是猜的。
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 证件签发单位
方案分析:
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)