Php 跟踪每个人每月的通话次数-MySQL还是XML?
我正在努力确定为大约43名员工存储每月通话记录的最佳方式。客户希望能够以几种不同的方式查看数据-谁的电话呼叫次数最多/最少,前10名的图表,上一年的变化,等等 我曾考虑每年用每个人的姓名和每月通话记录不断更新一个XML文件,但这会使提取不同类型的数据比使用MySQL更具挑战性 如果MySQL是一个不错的选择,那么最好是每人每年存储一行数据,每个人每月存储一列数据?或者,每个月添加一行,其中包含年度、月份和通话记录 如蒙指教,不胜感激 下面是一个包含数据的XML文件示例-Php 跟踪每个人每月的通话次数-MySQL还是XML?,php,mysql,xml,Php,Mysql,Xml,我正在努力确定为大约43名员工存储每月通话记录的最佳方式。客户希望能够以几种不同的方式查看数据-谁的电话呼叫次数最多/最少,前10名的图表,上一年的变化,等等 我曾考虑每年用每个人的姓名和每月通话记录不断更新一个XML文件,但这会使提取不同类型的数据比使用MySQL更具挑战性 如果MySQL是一个不错的选择,那么最好是每人每年存储一行数据,每个人每月存储一列数据?或者,每个月添加一行,其中包含年度、月份和通话记录 如蒙指教,不胜感激 下面是一个包含数据的XML文件示例- <?xml ver
<?xml version="1.0" encoding="UTF-8" ?>
<report>
<ReportHeader>
<Section SectionNumber="0">
<Picture Name="DeptPic1" GraphicType="BolbField"></Picture>
</Section>
</ReportHeader>
<Group Level="1">
<GroupFooter>
<Section SectionNumber="1">
<Field Name="Field11" FieldName="{IncdPers.PERSONNAME}">
<FormattedValue>Captain John Doe</FormattedValue>
<Value>Captain John Doe</Value>
</Field>
<Field Name="Field12" FieldName="{IncdPers.PERSONLOOKUPID}">
<FormattedValue>Doe, John</FormattedValue>
<Value>Doe, John</Value>
</Field>
<Field Name="Field13" FieldName="DistinctCount ({In5basic.GUIDIDNUMBER}, {IncdPers.PERSONLOOKUPID})">
<FormattedValue>6</FormattedValue>
<Value>6</Value>
</Field>
<Field Name="Field14" FieldName="{@PercentInc}">
<FormattedValue>54.55</FormattedValue>
<Value>54.55</Value>
</Field>
<Text Name="Text14">
<TextValue>%</TextValue>
</Text>
</Section>
</GroupFooter>
</Group>
<Group Level="1">
<GroupFooter>
<Section SectionNumber="1">
<Field Name="Field11" FieldName="{IncdPers.PERSONNAME}">
<FormattedValue>Firefighter Jane Smith</FormattedValue>
<Value>Firefighter Jane Smith</Value>
</Field>
<Field Name="Field12" FieldName="{IncdPers.PERSONLOOKUPID}">
<FormattedValue>Smith, Jane</FormattedValue>
<Value>Smith, Jane</Value>
</Field>
<Field Name="Field13" FieldName="DistinctCount ({In5basic.GUIDIDNUMBER}, {IncdPers.PERSONLOOKUPID})">
<FormattedValue>1</FormattedValue>
<Value>1</Value>
</Field>
<Field Name="Field14" FieldName="{@PercentInc}">
<FormattedValue>9.09</FormattedValue>
<Value>9.09</Value>
</Field>
<Text Name="Text14">
<TextValue>%</TextValue>
</Text>
</Section>
</GroupFooter>
</Group>
</report>
约翰·多伊船长
约翰·多伊船长
多伊,约翰
多伊,约翰
6.
6.
54.55
54.55
%
消防员简·史密斯
消防员简·史密斯
史密斯,简
史密斯,简
1.
1.
9.09
9.09
%
这正是关系数据库擅长的事情。我会将数据存储在最细粒度的级别上——如果有,则存储单个呼叫的记录,如果没有,则存储为每个用户/月。每个月都有一个专栏会使查询变得困难
如果您收到的数据不是原始呼叫数据,而是某种月度摘要,请将其存储在数据库中,以便在查询时提供最大的灵活性。这正是关系数据库擅长的事情。我会将数据存储在最细粒度的级别上——如果有,则存储单个呼叫的记录,如果没有,则存储为每个用户/月。每个月都有一个专栏会使查询变得困难
如果您收到的数据不是原始呼叫数据,而是某种月度摘要,请以这种方式将其存储在数据库中,以便在查询时提供最大的灵活性。我有两个表。第一个是关于打电话的人。第二张表是关于那个人打的电话。像这样:
Table 1
-------
+----------------+
| id name |
+----------------+
0 bob
1 john
2 mary
Table 2
-------
+----------------------------------------------+
| id user_id calls date |
+----------------------------------------------+
0 0 12 2012-10-21
1 1 15 2012-10-21
2 2 23 2012-10-21
3 0 16 2012-10-22
4 1 17 2012-10-22
5 2 28 2012-10-22
正如您所看到的,您可以使用MySQL存储每日通话信息,或者任何您想要的时间间隔。您可以跟踪任何给定时间段内的数字(尽管上面的示例仅显示2天),根据这些数字生成报告,显示随时间变化的趋势,等等。我有两个表。第一个是关于打电话的人。第二张表是关于那个人打的电话。像这样:
Table 1
-------
+----------------+
| id name |
+----------------+
0 bob
1 john
2 mary
Table 2
-------
+----------------------------------------------+
| id user_id calls date |
+----------------------------------------------+
0 0 12 2012-10-21
1 1 15 2012-10-21
2 2 23 2012-10-21
3 0 16 2012-10-22
4 1 17 2012-10-22
5 2 28 2012-10-22
正如您所看到的,您可以使用MySQL存储每日通话信息,或者任何您想要的时间间隔。您可以跟踪任何给定时间段内的数字(不过上面的示例仅显示了2天),根据这些数字生成报告,显示随时间变化的趋势,等等。XML在这里有什么用途?您是否与另一个系统连接?您的源数据在哪里?是什么?源数据实际上是一个XML文件,由客户每月提交。我使用PHP对数据进行迭代,并按名称和调用次数提取每条记录。我需要每年将每个月的XML数据合并到一个单一的数据源中。您能提供一个解析XML文件的示例吗?持续更新XML文件会导致灾难。使用数据库并不难,即使是像SQLite这样的基础数据库也会为您提供一些在纯XML中进行操作单调乏味或不可能的功能?您是否与另一个系统连接?您的源数据在哪里?是什么?源数据实际上是一个XML文件,由客户每月提交。我使用PHP对数据进行迭代,并按名称和调用次数提取每条记录。我需要每年将每个月的XML数据合并到一个单一的数据源中。您能提供一个解析XML文件的示例吗?持续更新XML文件会导致灾难。使用数据库并不难,即使是像SQLite这样的基础数据库也会为您提供一些功能,这些功能在纯XML中是乏味或不可能实现的。这些数据按月提供,每个人当月的呼叫总数。源文件本身就是一个XML文件,我只想找到将所有数据保存在一个中心位置(而不是一堆单独的XML文件)的最佳方法,这样我就可以使用它+1。只要按原样拉入XML数据,就可以按任何方式转换它。您将拥有的数据量听起来微不足道。如果可以,每次通话存储一行。每次通话存储一行是指当月的通话总数吗?因为这些号码不是实时输入的,所以它们是按月输入的,包含当月的通话总数。每次通话一行假设您处理的是原始通话数据-您在最初的问题中不是很具体。啊,是的,很抱歉。请参阅更新的XML问题示例数据按月提供,其中包含当月每人的呼叫总数。源文件本身就是一个XML文件,我只想找到将所有数据保存在一个中心位置(而不是一堆单独的XML文件)的最佳方法,这样我就可以使用它+1。只要按原样拉入XML数据,就可以了