Django - 在数据库中存储数字或文本答案的最佳方式是什么?
Django - What is the best way to store in the DB answers that can be numerical or text?
我正在做一个学生调查项目。存储问题的模型是这样的:
ID Question Type
1 is good teacher? Choice
2 What do you like about Open-answer
the teacher?
然后在 choice
类型的问题中,学生将选择一个选项(例如:完全同意),这将存储一个数字代码(例如 5)。但是在开放式问题中,学生会写文字。
在answers model
中应该用什么样的字段存储这些答案?也许是 TextField?
如果您想使用同一列打开文本,您可以将您的选择作为文本...所以您可以在用户 select 选项时写一个固定的文本,而不是设置 1、2、3、4,所以这会让你的数据更易读
ANSWER = (
("Yes", "Yes"),
("No", "No"),
("Neutral", "Neutral"),
)
或再创建 2 列...一列用于设置问题类型(select 或文本),另一列用于存储选项(这样您就可以设置为外键而不是使用静态值这可以从一个模型加载)
ID Question Type Answer-Text AnswerID
1 is good teacher? Choice null 1
2 What do you like about Open-answer "The way he swag" null
the teacher?
或者将所有内容与 String 混合...但是获取此整数 ID 时会遇到一些麻烦...当您尝试将其作为整数获取时会抛出一些错误 int("1") 可以,但 int("The way he swag") 会引发错误
使用 TextField
可能不是一个好主意,因为您将 int
与 string
类型的对象混合使用,这绝对不推荐。
您可以做的一件事是将其视为两个不同的领域。一个 Choicefield
和一个 TextField
。这样,当用户想要使用 open-answer 时,他可以选择一个空值(空字符串 ''
)。然后您可以稍后计算空字符串。
我正在做一个学生调查项目。存储问题的模型是这样的:
ID Question Type
1 is good teacher? Choice
2 What do you like about Open-answer
the teacher?
然后在 choice
类型的问题中,学生将选择一个选项(例如:完全同意),这将存储一个数字代码(例如 5)。但是在开放式问题中,学生会写文字。
在answers model
中应该用什么样的字段存储这些答案?也许是 TextField?
如果您想使用同一列打开文本,您可以将您的选择作为文本...所以您可以在用户 select 选项时写一个固定的文本,而不是设置 1、2、3、4,所以这会让你的数据更易读
ANSWER = (
("Yes", "Yes"),
("No", "No"),
("Neutral", "Neutral"),
)
或再创建 2 列...一列用于设置问题类型(select 或文本),另一列用于存储选项(这样您就可以设置为外键而不是使用静态值这可以从一个模型加载)
ID Question Type Answer-Text AnswerID
1 is good teacher? Choice null 1
2 What do you like about Open-answer "The way he swag" null
the teacher?
或者将所有内容与 String 混合...但是获取此整数 ID 时会遇到一些麻烦...当您尝试将其作为整数获取时会抛出一些错误 int("1") 可以,但 int("The way he swag") 会引发错误
使用 TextField
可能不是一个好主意,因为您将 int
与 string
类型的对象混合使用,这绝对不推荐。
您可以做的一件事是将其视为两个不同的领域。一个 Choicefield
和一个 TextField
。这样,当用户想要使用 open-answer 时,他可以选择一个空值(空字符串 ''
)。然后您可以稍后计算空字符串。