0

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

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

  1. 个人卡(姓名、年龄、电子邮件等) - 用户可以(但没有义务)填写一张
  2. 到目前为止用户发送和接收的文件数
  3. 每隔一段时间发送一次的应用程序统计信息,其中包含应用程序中的错误数量、他的操作系统版本等信息...
  4. 过去一小时内发送/接收的文件总数(针对所有用户)

每个用户都有一个唯一的 36 位十六进制数字“AF41-FB11-.....-FFFF”

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

不幸的是我对数据库设计不是很熟悉,所以我想到了以下几点:

  1. 一个用户表,其中将包含:

    唯一用户 ID | 牧师卡 | 文件发送 | 收到的文件

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

    唯一用户 ID | number_of 错误 | 操作系统版本 | .... | sumbission_date_time

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

    | total_files_received_in_the_last_hour | total_files_sent_in_the_last_hour | 提交日期时间

我的问题是:

  1. 在性能方面,在服务器端应用程序中收集和存储每个用户的数据是否有意义,并每小时一次将其全部放入数据库(例如打开连接、更新字段/插入字段、关闭连接)?或者我应该简单地更新用户每次执行时所做的每笔交易(发送/接收文件)?
  2. 我应该创建一个不同的主键,而不是 36 位 id 吗?
  3. 这个设计有意义吗??

我正在使用 mySQL 5.1,innoDB,DBMS 与服务器端应用程序在同一台机器上

任何见解都会有所帮助!

4

0 回答 0