Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/255.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 跟踪每个人每月的通话次数-MySQL还是XML?_Php_Mysql_Xml - Fatal编程技术网

Php 跟踪每个人每月的通话次数-MySQL还是XML?

Php 跟踪每个人每月的通话次数-MySQL还是XML?,php,mysql,xml,Php,Mysql,Xml,我正在努力确定为大约43名员工存储每月通话记录的最佳方式。客户希望能够以几种不同的方式查看数据-谁的电话呼叫次数最多/最少,前10名的图表,上一年的变化,等等 我曾考虑每年用每个人的姓名和每月通话记录不断更新一个XML文件,但这会使提取不同类型的数据比使用MySQL更具挑战性 如果MySQL是一个不错的选择,那么最好是每人每年存储一行数据,每个人每月存储一列数据?或者,每个月添加一行,其中包含年度、月份和通话记录 如蒙指教,不胜感激 下面是一个包含数据的XML文件示例- <?xml ver

我正在努力确定为大约43名员工存储每月通话记录的最佳方式。客户希望能够以几种不同的方式查看数据-谁的电话呼叫次数最多/最少,前10名的图表,上一年的变化,等等

我曾考虑每年用每个人的姓名和每月通话记录不断更新一个XML文件,但这会使提取不同类型的数据比使用MySQL更具挑战性

如果MySQL是一个不错的选择,那么最好是每人每年存储一行数据,每个人每月存储一列数据?或者,每个月添加一行,其中包含年度、月份和通话记录

如蒙指教,不胜感激

下面是一个包含数据的XML文件示例-

<?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数据,就可以了