我正在创建一个小型调查问卷,其数据库设计如下;遵循 this thread 中的架构由迈克尔·杜兰特制作,稍作修改。
现在,对于某些问题,我必须提供城市作为答案选项;它已经存在于 master_cities 表中。 例如:您现在居住在哪个城市?
答案将采用从 master_city 表派生的下拉格式。 我不应该将 master_cities_table 的全部内容复制到 option_choices 表中,应该吗???
任何想法都将不胜感激。
编辑:我想澄清一下这个问题。
- 这个问题与 UI/UX、纯数据库设计完全无关。
- 我试图实现的目标是避免数据冗余,例如将主表记录复制到 options_choices 中。
- 由于这是一个调查系统,因此所有答案的选择都必须是 数据库驱动,比如A.强烈同意,B.中立,C.完全同意 不同意。可以重复使用它来回答其他问题,例如 “你在哪里出世?”或“您以前居住过哪些城市?”
- 这里的 Master_cities 表只是主表之一(并且 最大),我需要引用它来提供答案选择。
希望能够消除困惑。
当前方法:
- 我删除了
options_choices
表中的referral_table
字段并将其放入 相反,在options_group
表内, - 将
answers
表中的option_choice_id
设置为可 NULL, - 并将
master_cities
主键另存为answers_text
字段中的文本。
这似乎有效。
但是,也许有更好的方法,所以欢迎您分享您的见解,哦数据库专家!
最佳答案
不知道。可用性表明太长的下拉列表不会带来良好的用户体验。
另一种方法是尝试提前输入,类似于 Google 在搜索文本框中开始输入术语时所做的操作,以查找城市名称。用户在文本框中输入字母后,您可以缩小查询范围并仅显示匹配的城市名称。
关于mysql - 调查的答案选项引用主表,例如城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135603/