l 问题
为一个销售管理系统准备模拟数据进行测试。要求生成4张表,数据的要求分别是:
销售员表,结构如下:
要求有50名销售员,5个地区:华北、华南、华中、西南、西北,4种学历:高中、大专、本科、硕士。
客户表,结构如下:
需要200个客户数据。
产品表:
要求模拟30种产品。
销售合同表:
要求模拟10000条销售记录,分布2009年1年的时间内。
l 思路
大致思路:构建测试数据有两个关键问题需要解决,一是如何实现大量数据的录入,二如何保证插入的数据具有一定的随机性。对于第一点,可以使用集算器的循环插入来实现;对于第二点,可以利用rand函数实现。
1. 首先创建销售员表。ID字段可以使用1-50中的数字填入,姓名字段用chn函数随意生成即可,学历和地区字段从给出的选项中用rand函数随机选择。
2. 然后构建客户表。ID字段一样使用序号填入,名称随意生成,联系人和地址字段并不重要,这里写入多个“-”字符填充即可,同样的,电话字段也不重要,随便写个数字即可。
3. 接下来构建产品表。ID和名称可以效仿前面两表,价格字段,用rand函数生成,以1000为下限,这样看起来比较真实。
4. 最后构建合同表。ID字段一样用序号,客户、产品、销售员字段都从前面已经生成的表中用rand函数随机取出,并提取出ID字段值;日期字段可以用relDate和rand函数生成,保证其在2009年范围内;数量字段在一定范围内随机取即可,这里从1-5中取。
5. 最后在数据库中创建相应的表,将结果序表都写入数据库即可。
l 代码
|
A |
B |
C |
1 |
[NorthChina,SouthChina,CentralChina,Southwest,Northwest] |
|
/地区序列 |
2 |
[Senior High School,Associate Degree,Bachelor,Master] |
|
/学历序列 |
3 |
50 |
|
/销售员数量 |
4 |
=create(ID,Name,Education ,Area) |
|
/销售员表 |
5 |
=A4.insert(0:A3,~,"Salesperson_"+string(#),A2(int(rand()*A2.len()+1)),A1(int(rand()*A1.len()+1))) |
|
/写入销售员数据 |
6 |
200 |
|
/客户数量 |
7 |
=create(ID,Name,Contact,Address,Phone) |
|
/客户表 |
8 |
=A7.insert(0:A6,~,"Client"+string(#),"---","------","87654321") |
|
/客户数据 |
9 |
30 |
|
/产品数量 |
10 |
=create(ID,Name,Price) |
|
/产品表 |
11 |
=A10.insert(0:A9,~,"Product"+string(#),int(rand()*90)*100+1000) |
|
/写入产品数据 |
12 |
1000 |
|
/合同数量 |
13 |
=create(ContractNo,Client,Product,Sale,SellDate,Quantity) |
|
/合同表 |
14 |
for A12 |
|
/循环插入10000条记录 |
15 |
|
=A7(int(rand()*A7.len()+1)).ID |
/随机取一个客户的ID |
16 |
|
=A10(int(rand()*A10.len()+1)).ID |
/随机取一个产品的ID |
17 |
|
=A4(int(rand()*A4.len()+1)).ID |
/随机取一个销售员的ID |
18 |
|
= elapse ("2009-1-1",int(rand()*365)+1) |
/随机生成一个2009年内的日期 |
19 |
|
=A13.insert(0,A14,B15,B16,B17,B18,int(rand()*5)+1) |
/写入合同数据 |
20 |
|
|
|
21 |
/下面将生成的序表都写入文本文件 |
|
|
22 |
>file("C:\\test_Sale.txt").export@t(A4) |
|
|
23 |
>file("C:\\test_Client.txt").export@t(A7) |
|
|
24 |
>file("C:\\test_Product.txt").export@t(A10) |
|
|
25 |
>file("C:\\test_Contract.txt").export@t(A13) |
|
|
26 |
=file("C:\\test_Sale.txt").import@t() |
|
/查看销售员表 |
27 |
=file("C:\\test_Client.txt").import@t() |
|
/查看客户表 |
28 |
=file("C:\\test_Product.txt").import@t() |
|
/查看产品表 |
29 |
=file("C:\\test_Contract.txt").import@t() |
|
/查看合同表 |
l 结果
(每次随机产生数据,所以运行结果可能不一样.)
销售员表:
客户表:
产品表:
合同表: