Php 如何为调查应用程序构建数据库?

Php 如何为调查应用程序构建数据库?,php,mysql,laravel,Php,Mysql,Laravel,我正在Laravel中构建一个小型调查应用程序,但我不确定如何构建数据库。it有三个主要实体: 使用者 调查 问题 一个用户可以填写许多调查,一个调查可能有很多问题。为此,我创建了两个数据透视表: 用户调查(id,用户id,调查id) 调查问题(id、调查id、问题id) 但我不确定如何存储答案,因为用户可能也会多次填写同一份调查,因此需要一种方法来区分不同版本的用户答案 我当时的想法是创建一个名为user\u survey\u answers的附加表,其中包含以下列: 身份证 调查\

我正在Laravel中构建一个小型调查应用程序,但我不确定如何构建数据库。it有三个主要实体:

  • 使用者
  • 调查
  • 问题
一个用户可以填写许多调查,一个调查可能有很多问题。为此,我创建了两个数据透视表:

  • 用户调查(id,用户id,调查id)
  • 调查问题(id、调查id、问题id)
但我不确定如何存储答案,因为用户可能也会多次填写同一份调查,因此需要一种方法来区分不同版本的用户答案

我当时的想法是创建一个名为user\u survey\u answers的附加表,其中包含以下列:

  • 身份证
  • 调查\实例\ id(将引用用户\客户端表中的id列)
  • 问题编号
  • 问题与答案

这是用于此的最佳结构吗?如果是这样的话,我将如何在Laravel中创建有说服力的关系,以引用用户调查答案表?

与我要键入基于问题id的问题lol表、基于id的用户答案表以及该用户的会话id完全相同。假设这是一个购物网站,用户可以在其中下单。因此,您将有一个用户表、一个订单表(哪个用户下了哪个订单)和一个订单明细表(每个订单具体包含哪些内容)。这有用吗?顺便说一句,“pivot”表中的代理项id是冗余的,这与我要为基于问题id的问题键入lol表、为基于id的用户答案键入表以及为该用户键入会话id是一样的。因此,您将有一个用户表、一个订单表(哪个用户下了哪个订单)和一个订单明细表(每个订单具体包含哪些内容)。这有用吗?顺便说一句,“pivot”表中的代理项ID是多余的