是否可以将答案作为整数存储在数据库中


Is it possible to store answers in a database as integers?

在你继续阅读之前,我只想把一些事情说得非常清楚,我不想找人为我编写代码,我只需要知道我是否有可能做到这一点,因为我在这部分任务上没有那么长的时间,我想最好问一下Stackoverflow上的专家/人员。

所以我的问题是:我有很多问卷,将由参与者完成,因为答案是字符串,我想知道是否有可能将这些答案存储为整数,例如,你会有:

1="从不正确"2="很少正确"3="有时正确"4="经常正确"5="非常经常正确"。我只想存储数字,我只是想知道这是否可能。

谢谢。

已完成

我想以前我把这个问题写得很糟糕,我的糟糕。然而,我确实完成了这一部分,我将值存储在数据库中,并将其分配给每个答案。正如@octern提到的创建代码一样,这也非常方便,所以谢谢。

我感谢所有的回复,感谢你花时间处理这个问题。

您可以。如果参与者使用HTML表单提交答案,只需将表单元素的VALUE属性设置为答案的数字代码,这就是数据库中的内容。

只要让非常非常确定您创建了一个代码簿,这样您就可以在未来找出哪个数字对应哪个答案!您不希望依赖于解析网页,因为随着时间的推移,解析网页可能会发生变化。

是的,您可以将整数存储在数据库中。很明显,你可以给这些整数赋予你自己的意义。

是的,你可以做到。或者,您可以创建一个名为"possible_answers"的表,例如,将id作为主键,将text作为问题。存储问题答案的表现在可以具有possible_answers表的外键,以确保保存的整数始终有效。

有两种基本方法可以以相对容易阅读和理解的方式将值存储为整数。

最简单的方法是将它们存储为ENUM,因为行中存储的值实际上是ENUM声明中可能性列表的索引。ENUM的问题是,必须提前知道可能答案的列表,并且该列表需要保持相对静态,除非您希望每次维护该列表时都中断以更改表的结构。

最灵活的方法是创建一个带有ID列(通常是某种类型的auto_increment或serial)和用于该数字的标签的表。然后,原始表只是引用"其他"表中的ID列。这通常被称为外键引用。

在MySQL中,ENUM与外键引用的性能几乎相同。

是的,您当然可以在数据库中存储整数。请记住,如果您这样做,您将需要将这些整数"转换"为应用程序中的实际答案,可能需要使用switch语句。