【发布时间】:2010-10-04 15:46:11
【问题描述】:
我正在一个用户可以选择适用于他们的某些日期的网站上工作,例如日期 1、日期 2、日期 3 等。
每个日期都有属于它的特定问题,因此如果客户勾选“日期 1”以表明该日期适用于他,他会看到一堆文本框询问他有关日期 1 及其适用方式给他们。其他日期也是如此。
日期 1 和 2 以及几个问题,但其余日期只有 1 个问题。
这些日期及其答案稍后将用于为客户创建个性化提醒并发送给他。
我还想要一种可以让添加额外日期和字段变得简单(或尽可能简单)的设计。
我的问题是,在数据库中存储与用户相关的所有日期及其答案的最佳方式是什么?我在想,在user 表中,我有来自日期 1 的boolean 列 - 最后日期(显然它们实际上并未命名为日期 1、日期 2 等)。如果日期 1 的列设置为 0,则表示客户没有勾选,如果设置为 1,则表示他勾选了,并且他回答了问题。
关于日期的实际存储,我正在考虑以下两个选项:
1) 每个日期有 1 个表格,其中包含针对该日期提出的每个问题的列和一个 user_id 列。所以在Date_1 表中,我将有Q1_name、Q2_name 之类的列以及用户给出的问题的答案。
但我想要更优雅的东西,因为 1),在计算什么信息时获取所有用户的答案会很痛苦。在发送个性化电子邮件时适用于他们。 2) 有些日期只有 1 个问题,所以为他们创建一个完整的表格会很丑。
2) 一个user_answer 表,包含以下列:
user_id,date_name,question_name,answer_val
2 似乎是迄今为止最优雅的,但应该有更好的解决方案。有什么想法吗?
【问题讨论】:
标签: php mysql database-design