SQL问卷数据库设计(EAV模型)问题

时间:2015-04-01 01:00:18

标签: sql-server database tsql

我正在建立一个友谊网站,我尝试匹配具有相似兴趣的用户。

  • 我有25个问题,其中包含用户必须填写的已定义答案(下拉答案)。
  • 我使用实体 - 属性 - 价值模型来存储用户ID,问题ID是用户选择的答案ID。
  • 然后我使用count函数查看哪些用户与我的个人资料匹配最多。

当前表格结构

  1. 问题表
  2. 答案表
  3. Question_Answer_User表
  4. 我遇到的问题是我有两个问题,我不知道存储它们的最佳位置在哪里。

    1. 问题是你的国家是什么?
    2. 问题是你的国家是什么?
    3. 我不确定是否应将其与其他25个问题一起存储,或者我是否应将它们存储在三个单独的表中,如下所示。

      1. 国家/地区表
      2. 州表
      3. user_country_state表
      4. 这两个问题会有很多回答条目。例如,用户可以回答25个国家/地区以及用户可以回答的总共900个州/省。

        我希望能够将用户位置视为相似度,但我不确定将这种方法纳入其中的最佳方法是什么?

1 个答案:

答案 0 :(得分:1)

我认为所选的国家/地区和州应该包含在用户表格中,以及其他必要的用户信息,例如姓名和电子邮件地址。我不认为它属于Answers表,但它可以在那里工作。

对于用户在设置帐户时可以选择的选项列表,将它们存储在预定义的Q和A表中是一个好地方。我想,这取决于你的数据和功能是如何分开的,这样你就不会跨越存储调查类型答案的Q& A表的责任界限以及用户设置答案。