为销售管理系统准备测试数据

l  问题

为一个销售管理系统准备模拟数据进行测试。要求生成4张表,数据的要求分别是:

销售员表,结构如下:

 

要求有50名销售员,5个地区:华北、华南、华中、西南、西北,4种学历:高中、大专、本科、硕士。

客户表,结构如下:

需要200个客户数据。

产品表:

 

要求模拟30种产品。

销售合同表:

 

要求模拟10000条销售记录,分布20091年的时间内。

 

l  思路

大致思路:构建测试数据有两个关键问题需要解决,一是如何实现大量数据的录入,二如何保证插入的数据具有一定的随机性。对于第一点,可以使用集算器的循环插入来实现;对于第二点,可以利用rand函数实现。

1.  首先创建销售员表。ID字段可以使用1-50中的数字填入,姓名字段用chn函数随意生成即可,学历和地区字段从给出的选项中用rand函数随机选择。

2.  然后构建客户表。ID字段一样使用序号填入,名称随意生成,联系人和地址字段并不重要,这里写入多个“-”字符填充即可,同样的,电话字段也不重要,随便写个数字即可。

3.  接下来构建产品表。ID和名称可以效仿前面两表,价格字段,用rand函数生成,以1000为下限,这样看起来比较真实。

4.  最后构建合同表。ID字段一样用序号,客户、产品、销售员字段都从前面已经生成的表中用rand函数随机取出,并提取出ID字段值;日期字段可以用relDaterand函数生成,保证其在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  结果

 (每次随机产生数据,所以运行结果可能不一样.)

销售员表:

 

客户表:

 

产品表:

 

合同表: