小编Mod*_*lar的帖子

问卷数据库设计——哪种方式更好?

我有一个很长的 html 页面,几组问题分为小部分(一页大约有 15 个子部分),问题总数约为 100 个问题:从输入、多选、复选框、单选按钮、文本区域、和文件上传。一个问题可以包含许多答案,这些答案可以从一组复选框、一组选择列表、一组多选或所有这些组合成一个答案中获得。我以为我会在下面使用这个数据库设计,但最近发现这毕竟不是一个好方法。

  1. 一个客户只能有一组问题:每 100 个问题就有一个客户。
  2. 对于旧方法,我不会在数据库中保留问题,而是在 PHP 编码中指定为常量。问题是我必须比较 PHP 中的问题才能使其与数据库中的答案同步。如果某个问题已从 PHP 中更改/删除/移动,我肯定会迷失在将其与问卷数据库中的答案匹配的情况下。更好的解决方案?
  3. 我能否将从表单中的多个元素获得的多个答案保存在一个字段中作为一个答案?如何检索此字段并再次显示以供客户在表单上查看?
  4. 我应该选择下面的哪个选项?

选项 1:旧方法(1 桌)

表格:问卷

  • 身份证(PK)
  • 顾客ID
  • 地位
  • A1
  • A2
  • A3
  • .
  • .
  • .
  • A100

选项 2:新方法(2 个表)

表格:问题

  • QID(PK)
  • 问题(varchar)

表:答案

  • 援助(PK)
  • 顾客ID
  • QID(整数)
  • 答案(varchar)

还是选项3?

database-design

15
推荐指数
2
解决办法
3万
查看次数

如何在数据库中保留很长的问题和答案?

我正在计划我的数据库设计为 3 类不同的客户(目前至少 3 个)提供 3 组多个问题,每组包含大约。100 个问题,等待他们的答案被保存在数据库中。

这些问题都在必填的问卷中,这对我的工作来说是非常重要的材料,然后将它们全部作为电子邮件发送给我自己是不可替代的。我不是这个领域的专家。我不确定存储、检索和管理它们的最佳方法是什么。

请查看我的数据库设计和建议以获得更好的方法。

表格:问题

  • 设置名称
  • 第一季度
  • Q2
  • Q3
  • ...

表:问卷

  • 顾客ID
  • 设置名称
  • A1
  • A2
  • A3
  • ...

我有3个主要问题:

  1. 如何根据客户资料在PHP页面上显示每组问答?
  2. 问题需要显示在网页上,如果是手动,文本显示,如果我决定移除、编辑或删除一些问题,这对我来说将是一项耗时的工作。你会推荐什么方式?
  3. QUESTIONS 表中的所有问题(Q1、Q2 和...)都需要与 QUESTIONNAIRE 表中的答案(A1、A2 和...)完全映射,有没有更好的方法?

database-design

6
推荐指数
1
解决办法
3032
查看次数

组合或分离表:文件和消息?

这是为了在我的客户和我之间在线共享文件而设计此表的最佳方法,还是应该将 Message 表和 File 表分开或将它们组合在一起?

组合表方式: FILE表

  • ID
  • 顾客ID
  • FilePath(来自双方的文件路径:客户和我)
  • 内容(消息)
  • 标记(已读/未读 + ISent/CustomerSent)
  • 状态(已查看、已审核、已接受等)
  • 时间戳(文件的当前日期时间已更改)
  • CreationDate(创建文件的日期)
  • Dateline(设置文件对应动作的截止日期)

优点:1张单人桌

缺点:共享同一个表的 2 个操作,在每条记录中,“FilePath”或“Content”可以为空,以防客户希望通过编写消息而没有附件 (FilePath) 或客户上传任何文件而没有任何消息(内容)写的。

2 表方法:

文件表

  • ID
  • 顾客ID
  • 姓名
  • 类型
  • 尺寸
  • 数据
  • 已创建

留言表

  • ID
  • 顾客ID
  • 信息
  • 依恋
  • 已创建

优点:没有空字段

缺点:它们在这两个表中的用途相同,但一个侧重于消息,其他侧重于文件。

你会推荐什么?

database-design

3
推荐指数
1
解决办法
184
查看次数

标签 统计

database-design ×3