如何设计数据库模型来记录客户的历史活动?

时间:2015-08-04 18:15:07

标签: android mysql database database-design content-management-system

在我的应用程序中,一个回答应用程序的问题。我选择MySql作为其数据库。一旦用户A在时间X回答用户B的问题Q,我应该向B发送消息,A已经回答了Q.Reasonablly,我还应该记录这两件事,一件是A,你在时间X回答B问题Q,另一件是B,你提问Q在时间X回答了A.相应地,这些记录应该能够将来由用户审核。   我应该如何设计数据库系统来保存这些用户历史记录? 我有三张桌子:

  1. 一个用于提问题
  2. 它包括一个字段question_item_xmltree_path,保存answer_item_id回答这个问题由json就像[" 120"," 121"," 122"],我知道&# 39;一个非常糟糕的方式。 一个

    1. 一个用于关键项目
    2. 包括一些描述密钥的字段,例如raiser_name raise_time

1 个答案:

答案 0 :(得分:0)

你正在以错误的方式解决这个问题 想一想您在文本中描述实体的方式 - 有用户,问题和答案。这些是系统的主要实体,应该是数据库中的主要表。由于用户可以发布许多问题,而每个问题可能由单个用户发布,因此这些表之间的关系为1:m。同样适用于问答,以及用户和答案。

长话短说 - 从这个基本设计开始:

TblUsers (user details)
TblQuestions (question details, and an fk to tblusers, for the user that asked the question)
TblAnswers (answer details, an fk to tblusers for the user that posted the answer, and an fk to tblquestions for the question that it belongs to).

通过此结构,您可以获得基本q& a应用程序所需的所有信息。