3

我只是想问一下如何在数据库模式中最好地表示带有单选按钮(Y/N)的表单,如果是,将有一个输入字段。比如“你现在在吃药吗?” (o) 是或 (o) 否。如果选择“是”,输入字段将变为可用,他们必须将其写下来。目前我有这个非常简单的模式:

tblUser
-----------
user_id

tblAnswers
--------------
answer_id
user_id
question_id
answer


tblquestions
----------------
question_id
question_text

我认为我现在拥有的模式对于大多数事情来说都很好:多个复选框作为答案、单选按钮等。但对于具有相关输入字段的单选按钮,我不确定。顺便说一句,我希望它简单明了……我每 1 个用户只有 1 个调查。而且问题在很长一段时间内都不会改变;也许甚至从来没有。再说一次,也许我当前的模式适用于具有输入依赖性的径向...而不是“是”作为答案,我将使用输入字段值代替?所以在tblanswer我可以有一个answer喜欢Stress pills(而不是是)或No。这可以接受吗?或者这是一个坏主意?任何帮助将不胜感激。

4

1 回答 1

1

我将为单选按钮提供一个解决方案,我不会处理您的表结构,因为它与此答案无关,但我会在这里留下一个提示:忘记规范化规则,它们在大多数情况下是不切实际的。

现在,关于您的问题,您描述了 3 个可能的结果(是、否和文本),但实际上您只有 2 个(否和文本),因为文本的存在意味着答案已经是肯定的。

因此,您应该做的是准备您的输入以发送“null”或“text”,使用一些 javascript 来显示/隐藏文本输入,并在 INSERT 查询后面获取一些逻辑来检测它是否应该将输入保存为null(对于收音机关闭)或作为$_POST['foo'](用于收音机打开)。

于 2012-12-05T12:47:05.597 回答