用户行为监控数据库

时间:2013-04-01 08:21:28

标签: mysql database-design

我开发了一款iPhone应用程序,允许用户向/从服务器发送/接收文件。

此时我希望将数据库添加到我的服务器端应用程序(c#中的套接字),以便跟踪以下内容:

  1. 个人卡(姓名,年龄,电子邮件等) - 用户可以(但没有义务)填写一份
  2. 到目前为止用户发送和接收的文件数
  3. app stats每隔一段时间发送一次,包含应用程序中的错误数量,操作系统版本等信息......
  4. 过去一小时内发送/接收的文件总数(适用于所有用户)
  5. 每个用户都有一个唯一的36位十六进制数字“AF41-FB11 -...- FFFF”

    数据库应提供以下答案:哪些用户是“重度用户”,过去一天/小时/月交换了多少文件,操作系统与错误数量之间存在相关性。

    不幸的是我对DB设计不太熟悉,所以我想到了以下内容:

    1. 用户表格,其中包含:

      uniqueUserID | Parsonal卡|发送的文件|收到的文件

    2. App stats 表(每个用户可以有多条记录)

      uniqueUserID | number_of个错误| OS_version | .... | sumbission_date_time

    3. 一般统计表(每小时新增记录)

      | total_files_received_in_the_last_hour | total_files_sent_in_the_last_hour | submission_date_time

    4. 我的问题是:

      1. 性能方面,在服务器端应用程序中为每个用户收集和存储数据是否有意义,并且每小时将其全部丢入DB(例如,打开连接,UPDATE字段/ INSERT字段,关闭连接)?或者我应该只是更新用户每次执行时所执行的每个事务(发送/接收文件)?
      2. 我应该创建一个不同的主键,而不是36位数的ID吗?
      3. 这个设计有意义吗??
      4. 我正在使用mySQL 5.1,innoDB,DBMS与服务器端应用程序在同一台机器上

        任何见解都会有所帮助!

0 个答案:

没有答案