我想问一下如何在数据库模式中最好地表示带有径向按钮(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
。这可以接受吗?或者这是一个坏主意?任何帮助将不胜感激。
答案 0 :(得分:1)
我将提供一个单选按钮的解决方案,我不会对你的表结构进行处理,因为它与这个答案无关,但我会在这里留下一个提示:忘记规范化规则,在大多数情况下它们是不切实际的。
现在,关于你的问题,你正在描述3种可能的结果(YES,NO和TEXT),但实际上你只有2(NO和TEXT),因为TEXT的存在意味着答案是肯定的。
所以,你应该做的是准备你的输入发送“null”或“text”,使用一些javascript来显示/隐藏文本输入并获得INSERT查询后面的一些逻辑来检测它是否应该将输入保存为null
(无线电关闭)或$_POST['foo']
(无线电开启)。