对动态网站收集的注册信息进行处理
这篇blog是接着上篇 第一个动态网站的心得–细数建站跳过的坑! 写的,主要是对网站的云服务器上的access数据库导出来的数据进行处理加工。
数据类型和内容
access数据库userinfo的info表格下,一共有以下六个字段:
- number : 序列号; 自动编号;主键
- id: 学号;短文本;不为空
- name: 姓名;短文本;不为空
- mail: 电子邮箱;短文本;不为空
- cluster: 专业大类;短文本;不为空
- isForeign: 是否为国际生;短文本;不为空
百团大战当天线下记录表格usernumber,记录所有线下交过钱、进行过验证的注册社员的序列号:
- number: 序列号;数字(现场随机记录,不能选自动编号;更不能选短文本);主键
数据处理要求
1. 提取所有现场验证过的、交过社费的社员信息:
提取现场注册验证过的序列号的表格usernumber中,每个序列号对应的数据:1、把注册信息表info和序列号验证表进行合并,利用两表都有number字段,查询所有usernumber中number值对应的info的记录。2、把查询结果生成新表submitted,对新表进行二次处理,改正填写错误的邮箱格式,批量添加邮箱后缀(@xxxx.xxx ),发注册成功邮件。
2. 提取所有线上提交过注册信息,但现场未验证过、交过社费的社员信息:
利用上面查询生成的表submitted,进行第二次查询,查询userinfo表里有的但submitted表里没有的记录,生成新表unsure,因为怕注册人忘记序列号,我设置了允许最多三次提交,所以unsure表格里会包含有已验证过的会员的信息和未验证会员的重复信息。所以要进行二次过滤。第一次,先合并submitted表和unsure表,利用id字段,查询出两表重复的记录记为sameID表,即为unsure表需要删除的记录,然后通过查询unsure表里有但sameID表没有的记录,得到不包含已验证会员信息的表unsubmitted。第二次,对unsubmitted表再加工,删除重复id、重复姓名的记录,得到我们最后需要的信息,给所有未验证的注册者发邮件提醒缴纳社费。
数据处理步骤
1. 提取所有现场验证过的、交过社费的社员信息:
打开access,导入info表和excel格式的usernumber表(步骤可看:利用Access查询两个表中相同字段的方法)
合并两表:”创建“ —>”查询设计“—>info表和usernumber表都点—>空白处右键—>“SQL特定查询”—>“联合”—>填写SQL代码:
SELECT info.* FROM info INNER JOIN usernumber ON usernumber.number = info.number
生成具有所有验证过的社员信息的新表submitted,导出新表:打开“查询1”(之前查询的默认名)—>“外部数据”—>导出选”Excel“
改正填写错误的邮箱格式,批量添加邮箱后缀(如:@163.com ):因为写错邮箱格式的人不多,但是写错的格式也是千奇百怪,我就没写代码,而是手动改,大概也就十几个吧。但是邮箱后缀是批量添加的,这里有个动图,生动展示了应该如何快速批量添加数值:(操作可看:Excel里面要统一加入同一字段该怎么操作?)
2. 提取所有线上提交过注册信息,但现场未验证过、交过社费的社员信息:
导入submitted表,像上面一样合并两表,再进行查询。不过这次查询的是userunfo表里有,但是submitted表里没有的记录,所以代码如下,导出表unsure (参考:access如何筛选两表相同字段中的不同数据):
SELECT info.* FROM info LEFT JOIN submitted ON info.number = submitted.number WHERE (((info.number) Is Not Null) AND ((submitted.number) Is Null));
第一次过滤,先合并submitted表和unsure表,利用id字段,查询出两表重复的记录记为sameID表,即为unsure表需要删除的记录,代码类似上面。然后通过查询unsure表里有但sameID表没有的记录,得到不包含已验证会员信息的表unsubmitted。
第二次过滤,对unsubmitted表再加工,删除重复id、重复姓名的记录,得到我们最后需要的信息:这里有两个快速删除有重复记录的方法(参考:excel中如何删除有部分重复字段的记录):
使用高级筛选:
1、选中相关记录(连续选中的矩形区域有效);
2、在数据功能区,排序与筛选中的“高级”按钮;
3、在弹出的“高级筛选”对话框中,选择筛选结果的显示方式,建议为第二种(保留原始数据);
使用删除重复项工具:
Excel2007及以后版本中增加了一个“删除重复项”按钮,用它来删除重复记录更加容易。步骤如下:
1、选中相关记录(连续选中的矩形区域有效);
2、在数据功能区,单击数据工具中的“删除重复项”按钮;
3、在弹出的“删除重复项”对话框中,选择要查重的字段,即可。