gpt4 book ai didi

database - 带评分的检查/考试问题/答案的架构

转载 作者:太空狗 更新时间:2023-10-30 01:58:24 25 4
gpt4 key购买 nike

我正在编写一个应用程序来为我们的位置生成检查。基本上,将它们视为健康检查表。每一次“检查”都会有一系列的问答。答案可以是数字(1,2,3,4,5 - 这将代表它们的分值),也可以是多项选择('是','否')将映射到点(1 表示是,0 表示no) 和平面文本答案,它们不会映射到点,但可能会被应用层用于平均。因此,例如,我们可以有一个“酱汁温度”字段,它不带任何分数,但可用于在路上报告。

问题可以在多个检查表上重复使用,但可以有不同的分值。答案也是如此。

我在弄清楚它的架构时遇到了问题。我的直觉告诉我 EAV 是个不错的选择,但我越想越觉得数据仓库模型会更好。

特别是,我在找出将 min_points、max_points 和 no_points 映射到每个问题/答案的最佳方法时遇到了问题。这是我认为我将不得不使用 EAV 的地方。实际上我有点卡在上面了。如果是调查之类的,没有分数,或者每个答案的分值都一样,那就很简单了。问题表、答案表、输入类型的一些样板表等等。但是由于每个问题都可能有一个分值,并且该分值可能会根据使用该问题的位置而改变,所以我不确定如何进行。

因此,示例问题如下

  • 食物热吗[是,否]可能的分数 = 5(5 表示是,0 表示否)
  • 食物好吃吗 [1,2,3,4,5] 可能的分数 = 5(1 分 1,2 分 2,等等)
  • 经理是否值类[是,否]可能的分数 = 5(是 5 分,否是 0 分)
  • 建筑物是否干净 [1,2,3,4,5] 可能的分数 = 10(1 分 2 分,2 分 4 分,3 分 6 分,等等)
  • 工作人员是否专业[是,否]可能的分数 = 5(5 表示是,0 表示否)
  • 冰箱温度 [数字文本输入]
  • 值类经理[文本输入]

由于所有答案都可能有不同的数据类型和分值,我不确定如何为它们构建数据库。

我在想(为简洁起见,省略或更改了其他表、名称和其他 imp 详细信息)

CREATE TABLE IF NOT EXISTS inspection(
id mediumint(8) unsigned not null auto_increment PRIMARY KEY,
store_id mediumint(8) unsigned not null,
inspection_id mediumint(8) unsigned not null,
date_created datetime,
date_modified timestamp,
INDEX IDX_STORE(store_id),
INDEX IDX_inspection(inspection_id),
FOREIGN KEY (store_id) REFERENCES store (store_id)ON DELETE CASCADE,
FOREIGN KEY (inspection_id) REFERENCES inspection (inspection_id)ON DELETE CASCADE)

CREATE TABLE IF NOT EXISTS input_type(
input_type_id tinyint(4) unsigned not null auto_increment PRIMARY KEY,
input_type_name varchar(255),
date_created datetime,
date_modified timestamp)

CREATE TABLE IF NOT EXISTS inspection_question(
question_id mediumint(8) unsigned not null auto_increment PRIMARY KEY,
question text,
input_type_id mediumint(8),
date_created datetime,
date_modified timestamp)
CREATE TABLE IF NOT EXISTS inspection_option(
option_id,
value)

但这就是我有点卡住的地方。我不确定如何构建问题答案表来说明得分、不得分和不同的数据类型。

此外,我知道我需要商店到检查等的映射表,但我暂时将它们全部关闭,因为这对问题并不重要。

因此,我是否应该为所有可能的答案(从选项表构建或以文本形式输入)存储在该表中,然后创建一个映射表以将“答案”映射到“问题”(用于任何特定检查)并将点存储在那里?

我只是想的不对。我需要一些帮助。

最佳答案

这里没有正确或错误的答案,我只是抛出一些想法和讨论点。

我建议基本“单位”不是问题,而是问题 + 答案 type 对(例如 1-5、文本或其他)。在我看来,Was the food hot/range 1 to 5Was the food hot/text description 非常不同,你会发疯试图将问题与两种(或更多)答案类型(更不用说这些答案的答案键了——暂时忽略它,我稍后再讲)。将该对称为 QnA 项。您最终可能会得到很多相似的对,但是嘿,这就是您必须要处理的。

所以你有一个 QnA 项目的“池”。它们是如何被选择使用的?特定表格(或调查问卷)是根据池中的项目构建的,还是每次填写调查问卷时随机选择的?表格是否与位置特别相关,或者表格是否可以在任何位置使用?他们在制作表格/问卷时有多挑剔? QnA 项目如何收集/相互关联和/或最终结果非常重要,除非您真的喜欢重写代码,否则您应该在开始编写代码之前解决所有问题。

给定一个已定义的 QnA 项目,您还应该有该项目的“答案键”——一种衡量给定答案(基于项目的答案类型)的方法:零、值、值 * 2,等等。这显然会因使用情况而异(问卷调查问卷?它是否根据调查问卷的呈现位置而有所不同?如果是,如何或为什么?)是否有标准化的答案键算法(总是零,总是值 * 2,等)或者这些也是非常自由的形式?确定它们的使用方式/与 QnA 项目的关联方式对于正确建模至关重要。

关于database - 带评分的检查/考试问题/答案的架构,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11317491/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com