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 结果
(每次随机产生数据,所以运行结果可能不一样.)
销售员表:

客户表:

产品表:

合同表:
