mysql - 调查的答案选项引用主表,例如城市

标签 mysql database-design

我正在创建一个小型调查问卷,其数据库设计如下;遵循 this thread 中的架构由迈克尔·杜兰特制作,稍作修改。

现在,对于某些问题,我必须提供城市作为答案选项;它已经存在于 master_cities 表中。 例如:您现在居住在哪个城市?

答案将采用从 master_city 表派生的下拉格式。 我不应该将 master_cities_table 的全部内容复制到 option_choices 表中,应该吗???

任何想法都将不胜感激。

current_db_schema

编辑:我想澄清一下这个问题。

  • 这个问题与 UI/UX、纯数据库设计完全无关。
  • 我试图实现的目标是避免数据冗余,例如将主表记录复制到 options_choices 中。
  • 由于这是一个调查系统,因此所有答案的选择都必须是 数据库驱动,比如A.强烈同意,B.中立,C.完全同意 不同意。可以重复使用它来回答其他问题,例如 “你在哪里出世?”或“您以前居住过哪些城市?”
  • 这里的 Master_cities 表只是主表之一(并且 最大),我需要引用它来提供答案选择。

希望能够消除困惑。

当前方法:

  1. 我删除了 options_choices 表中的 referral_table 字段并将其放入 相反,在 options_group 表内,
  2. answers 表中的 option_choice_id 设置为可 NULL,
  3. 并将 master_cities 主键另存为 answers_text 字段中的文本。

这似乎有效。
但是,也许有更好的方法,所以欢迎您分享您的见解,哦数据库专家!

最佳答案

不知道。可用性表明太长的下拉列表不会带来良好的用户体验。

另一种方法是尝试提前输入,类似于 Google 在搜索文本框中开始输入术语时所做的操作,以查找城市名称。用户在文本框中输入字母后,您可以缩小查询范围并仅显示匹配的城市名称。

关于mysql - 调查的答案选项引用主表,例如城市,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19135603/

相关文章:

java - 在java中显示数据库的表

MySql 使字段可根据另一个字段的值进行访问?

sql-server - 在列的尾部添加额外的空格

mysql - 存储多个日期范围

mongodb - Nosql数据库设计-MongoDB

mysql - 如何设计用于访问不同位置的表

mysql - 亚马逊 rds : Arabic character converted to ? ??提交后

mysql - 将 SQL 文件导入现有数据库表 (phpmyadmin)

php - 将字符串作为参数传递给函数时使用双引号与单引号

mysql - 数据库设计: different fields for multiple user types