调查问卷数据库设计

表格:用户表—选用网站用户表
问卷表—包含调查问卷自动编号、标题、前言、开启时间、结束时间、创建时间
问题表—包含问题编号、问题标题、相应的问卷编号、问题类型
选项表—包含选项编号、选项值、选项对应的问题、对应的问卷
答案表—用户编号、问卷编号、问题编号、答案内容
注:对于多选问题,每一条答案记录一条记录
统计:进行数据统计时,每一条答案记录统计一次,统计条件:

select * from `table_name` where  answer_proid  = `problem_id` and answer_quesid = `question_id` and answer_value = 'A' group by answer_proid;

对于多选的数值提交:
前台页面:

     <input type="hidden" id="i" name="i" value="<?php echo $i;?>"/>
     <p><?php echo $i."、".$rows['problem_title'];?></p>
     <input type="hidden" id="pro<?php echo $i?>" name="pro<?php echo $i?>" value="<?php echo $rows['problem_id']?>"/>
     <input type='hidden' id="protype<?php echo $i;?>" name="protype<?php echo $i;?>" value="<?php echo $protype;?>"/>
     <?php
         $sql2="select * from jinling_option where option_proid=".$rows['problem_id'];
           $result2=mysql_query($sql2);
           $nums=mysql_num_rows($result2);
           if($nums>0){
              while($row2=mysql_fetch_assoc($result2)){
                if($protype=="1"){
                 $btntype="radio";
               ?>
              <p style="margin-left:20px;">
              <input type="<?php echo $btntype;?>" id="radiopt<?php echo $i;?>" name="radiopt<?php echo $i;?>" value="<?php echo $row2['option_value'];?>">
               <?php echo $row2['option_content'];?>
             </p>   
             <?php
              }
              if($protype=="2"){
                $btntype="checkbox";
               ?>
              <p style="margin-left:20px;">
              <input type="<?php echo $btntype;?>" id="option[]" name="option[]" value="<?php echo $row2['option_value'];?>">
              <?php echo $row2['option_content'];?>
            </p>
        <?php
    }
  }
  }
  ?>

后台数据接收:

    for($y=1;$y<=$i;$y++){
    $proid=sqlReplace(trim($_POST['pro'.$y]));
    $protype=sqlReplace(trim($_POST['protype'.$y]));
    if($protype=="1"){
     $option = sqlReplace(trim($_POST['radiopt'.$y]));
     $sql2="insert into jinling_answer (answer_proid,answer_user,answer_time,answer_quesid,answer_content)values(".$proid.",".$user_id.",now(),".$quesid.",'".$option."')";
     //echo $sql2;
      mysql_query($sql2);
    }elseif($protype=="2"){
    for($a=0;$a<count($_POST['option']);$a++){
    $option2 = sqlReplace(trim($_POST['option'][$a]));
     $sql3="insert into jinling_answer (answer_proid,answer_user,answer_time,answer_quesid,answer_content)values(".$proid.",".$user_id.",now(),".$quesid.",'".$option2."')";
   //echo $sql3;
    mysql_query($sql3);
 }
 }
}
 alertInfo("问卷提交成功",'survey.php',0);

关于动态添加html元素的js:

<script type="text/javascript">

var count = 2;
var myopt = new Array('A','B','C','D','E','F','G','H');
function Add(){
   count += 1;
   var opt = myopt[count-1];
   var File1 = document.getElementByIdx_x_x("quetype");
   var p = document_createElement_x_x("p");

   var inputTxt = document_createElement_x_x("input");
   inputTxt.type = "text";
   inputTxt.name = "optionname"+count;
   inputTxt.id = "optionname"+count;
   inputTxt.value = "";

   var inputhi = document_createElement_x_x("input");
   inputhi.type="hidden";
   inputhi.value=opt;
   inputhi.id="option"+count;
   inputhi.name="option"+count;

   var countopt = document_createElement_x_x("input");
   countopt.type="hidden";
   countopt.id="countopt";
   countopt.name="countopt";
   countopt.value=count;

   var btn = document_createElement_x_x("input");
   btn.type = "image";
   btn.src="images/add.gif";
   btn.onclick = function(){
       Add(this);
       return false;
   }

   p.a(inputhi);
   p.a(countopt);
   p.a(inputTxt);
   p.a(btn);
   File1.a(p);
}

</script>
  • 6
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: Java调查问卷数据库设计非常重要,合理的设计可以提高问卷调查的效率和数据的可靠性。在设计数据库结构时,需要考虑以下几个方面: 1. 表的设计:根据问卷调查的需求,设计合适的表结构,可以包括问卷表、问题表、选项表、用户表等。问卷表用于存储问卷的基本信息,问题表用于存储问卷中的问题信息,选项表用于存储问题的选项信息,用户表用于存储参与调查的用户信息等。 2. 表之间的关联:通过外键关联将表进行连接,以建立表与表之间的关系。例如,问卷表与问题表可以通过问卷ID进行关联,问题表与选项表可以通过问题ID进行关联,用户表与问卷表可以通过用户ID进行关联等,这样可以实现数据的一致性和完整性。 3. 数据字段的设计:在每个表中,需要合理设计字段,包括数据类型、长度、约束等。例如,对于问卷表,可以包括问卷ID、问卷名称、创建时间等字段,对于问题表,可以包括问题ID、问题内容、问题类型等字段,对于选项表,可以包括选项ID、选项内容、问题ID等字段。 4. 数据库优化:为了提高数据库的查询效率,需要合理创建索引。通过在经常进行查询的字段上创建索引,可以加快查询速度,提高系统的响应速度。 5. 数据库安全性:在数据库设计中,需要考虑数据的安全性,可以通过权限设置、数据加密等方式保护数据的安全性。 最后,数据库设计需要根据具体的业务需求和实际情况进行灵活调整,保证系统的可扩展性和稳定性。同时,还需考虑数据备份与恢复、故障处理等方面,以保证数据库的可靠性和稳定性。 ### 回答2: Java调查问卷数据库设计可以从几个方面考虑。首先,我们需要设计一个用户表用于存储用户的基本信息,包括用户名、密码、邮箱地址等。这个表可以用来实现用户的登录和注册功能,并确保用户的唯一性。 另外一个重要的表是问卷表,其中包含了关于问卷的相关信息,比如问卷的标题、描述、创建时间等。问卷表还可以包含一个外键,指向创建该问卷的用户ID,以建立用户和问卷之间的关系。 为了存储问卷的问题,我们可以设计一个问题表。问题表中可以包含问题的内容、类型、选项等信息。问题表与问卷表之间可以建立一对多的关系,即一个问卷可以包含多个问题。 为了记录用户对问卷的回答,可以设计一个回答表。回答表需要包含用户ID、问卷ID、问题ID和回答内容等字段。这样可以记录每个用户对每个问题的回答结果,并且便于后续的统计分析。 此外,可以设计一个结果表用于存储问卷的统计结果。这个表可以包含问题ID、选项ID、回答数量等字段,以便于计算每个问题的回答结果。 除了上述的主要表之外,还可以根据实际需求设计一些辅助表,比如选项表、用户角色表等,来优化数据的存储和查询效率。 总之,Java调查问卷数据库设计需要根据具体需求来确定表的结构和关系,同时考虑数据的完整性和一致性,以及性能和可扩展性等因素。 ### 回答3: Java调查问卷数据库设计是指使用Java编程语言设计和实现调查问卷系统的数据库数据库调查问卷系统中起着存储、管理和查询数据的作用。 在设计数据库时,需要考虑以下几个方面: 1. 数据库设计:根据系统需求,设计合适的数据表。通常包括问卷表、问题表、选项表和答案表等。问卷表用于存储问卷的基本信息,问题表用于存储问题的内容和类型,选项表用于存储问题的选项,答案表用于存储用户的答案。 2. 表之间的关系:确定不同表之间的关系,如一对多关系或多对多关系等。一般来说,问卷表与问题表之间是一对多关系,问题表与选项表之间也是一对多关系。 3. 主键和外键:确定每个表的主键和外键。主键用于唯一标识一条记录,外键用于建立表之间的关联关系。 4. 数据类型和约束:选择适当的数据类型和约束,以确保数据的完整性和一致性。例如,使用整型存储主键,使用字符串存储问卷标题,使用日期类型存储创建时间等。 5. 索引和性能优化:对重要的字段创建索引,以提高查询性能。此外,可以使用分区、分表等技术对数据库进行性能优化。 6. 数据库安全:设置合适的权限控制,以确保只有授权的用户才能访问和修改数据库中的数据。 在Java调查问卷系统中,可以使用JDBC或者ORM框架如Hibernate进行数据库访问。使用JDBC可以编写原生的SQL语句来操作数据库,而使用ORM框架可以更方便地进行对象关系映射,简化数据库操作。 总之,Java调查问卷数据库设计是根据系统需求和业务逻辑,设计合适的数据表和表之间的关系,并考虑数据类型、约束、索引、性能优化和安全等因素,以满足调查问卷系统的需求,提供高效、可靠的数据存储和查询功能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值