【问题标题】:creating report in an unplanned mysql table在计划外的 mysql 表中创建报告
【发布时间】:2013-01-20 21:29:46
【问题描述】:

我创建了一个投票网站,用户是用来注册和投票的。我只为用户信息和评论创建了一个表。下面是表格的列和行:

用户:

列:用户名密码同意_1 理由_1 同意_2 理由_2

行:保罗测试是 NULL 否,因为我不喜欢它

我决定以这种方式制作这张表格,因为这些问题都在一个(表格)中,每个问题超过 100 行。再次,从表格中,如果您同意,您将无理由说明(这就是 null 的原因),但如果您不同意,则必须说明您的理由。我的问题是:

如何为这种计划外的数据库准备标准报告? 我如何计算同意的人数和拒绝的人数? 对于那些说不的人,我该如何提取他们的理由?

我希望使用 php 提取和显示此报告。我正在使用 mysql 和 php。

【问题讨论】:

  • 那么同意_1 和同意_2 是不同问题的答案?
  • 是的,你猜对了。它们是不同问题的答案。

标签: php mysql database phpmyadmin


【解决方案1】:

除非我误解了你,否则我认为你最好用normalisation 来重构你的表:

users
- id
- email
- name

polls
- id
- name

questions
- id
- poll_id
- question
- order

answers
- id
- question_id
- user_id
- answer

然后,希望您的要求和您需要的查询会变得更加清晰。例如,要查询对问题 #34 给出每个唯一答案的人数:

SELECT
    answer,
    count(*) AS 'people'
FROM answers
WHERE question_id = 34
GROUP BY answer

将返回类似:

answer    people
yes       15
no        17
null      3

【讨论】:

  • 感谢您的回复,关系很混乱。你能告诉我主键的列和辅助键的列吗?请说得更清楚。谢谢
  • 任何称为 id 的东西都是一个 PK,任何 _id 都链接到一个 PK
猜你喜欢
  • 1970-01-01
  • 2016-07-11
  • 1970-01-01
  • 2012-02-02
  • 2019-07-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多