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

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

销售员表,要求有50名销售员,5个地区:NorthChina, SouthChina, CentralChina, Southwest, Northwest4种学历:Senior High School, Associate Degree, Bachelor, Master。表结构如下:

..

客户表,需要200个客户数据,结构如下:

..

产品表,要求模拟30种产品,结构如下:

..

销售合同表,要求模拟10000条销售记录,分布在20241年的时间内:

..

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


A

B

C

1

[NorthChina,SouthChina,CentralChina,Southwest,Northwest]

2

[Senior High School,Associate Degree,Bachelor,Master]

3

>n1=50,n2=200,n3=30,n4=1000,len1=A1.len(),len2=A2.len()

4

=create(ID,Name,Education ,Area)

>A4.insert(0:n1,~,"Salesperson"/#, A2(rand(len2)+1), A1(rand(len1)+1))

5

=create(ID,Name,Contact,Address,Phone)

>A5.insert(0:n2,~,"Client"/#,"---","------", "87654321")

6

=create(ID,Name,Price)

>A6.insert(0:n3,~, "Product"/#, rand(91)*100+1000)

7

2024-1-1

=create(ContractNo,Client,Product,Sale, SellDate,Quantity)

8

>B7.insert(0:n4,~,A5(rand(n2)+1).ID,A6(rand(n3)+1).ID,A4(rand(n1)+1).ID,A7+rand(365), rand(5)+1)

9

>T("test_Sale.txt":A4)

=T("test_Sale.txt")


10

>T("test_Client.txt":A5)

=T("test_Client.txt")


11

>T("test_Product.txt":A6)

=T("test_Product.txt")


12

>T("test_Contract.txt":B7)

=T("test_Contract.txt")


A1A2准备一些创建数据需要的常量序列,包括销售区域和员工学历。

A3定义一些使用到的变量,包括各个表的数据量,以及区域和学历的总数量。

A4创建销售员表。B4生成随机数据,ID 字段可以使用1-50中的数字填入,姓名字段用SalespersonID拼合即可,学历和地区字段从B1A1的常量序列中用 rand 函数随机选择。执行后A4结果如下:

..

A5创建客户表。B5生成数据,ID 字段一样使用序号填入,名称用ClientID拼合,联系人和地址字段并不重要,这里写入多个“-”字符填充即可,同样的,电话字段也不重要,随便写个数字即可。

..

A6创建产品表。B6随机生成数据,ID 和名称可以效仿前面两表,价格字段,以 1000 为下限,10000为上限,用 rand 函数生成100的倍数。

..

最后构建合同表。A7定义合同初始日期,B7创建序表,A8随机填入数据,ID 字段一样用序号,ClientProductSale字段都从前面已经生成的表中用 rand 函数随机取出,并提取出 ID 字段值,即使它们的ID并非整数也可以正常使用;SellDate字段可以用 A7中的初始日期和rand函数生成,保证其在2024年范围内;Quantity字段在一定范围内随机取即可,这里从 1-5 中取。

..

最后用T函数将结果序表都写入文件即可,输出到文件后,可以用T函数读入查看。