簡體   English   中英

跟蹤每個人的每月呼叫計數-MySQL還是XML?

[英]Tracking monthly call count per individual - MySQL or XML?

我正在嘗試確定存儲大約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>

這正是關系數據庫最擅長的事情。 我將在最細粒度的級別上存儲數據-如果有的話,記錄每個呼叫的記錄,如果沒有,則按用戶/月記錄。 每個月都有一列將使查詢變得困難。

如果您收到的數據不是原始呼叫數據,而是某種形式的月度匯總,請以這種方式將其存儲在數據庫中,以便在查詢時獲得最大的靈活性。

我有兩張桌子。 第一個只是關於個人撥打電話。 第二張表是關於那個人打的電話。 像這樣:

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天),可以根據這些數字生成報告,顯示一段時間內的趨勢等。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM