[英]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.