问题定义:一家公司想通过询问一些问题来衡量其产品的客户满意度。公司的产品数据存储在“产品”表中,每个产品的客户数据存储在“客户”表中,并且每个产品的问题存储在问题表中。作为简单如下:基本数据库设计场景
产品:[ID,名称]
客户:[ID,PRODUCT_ID(FK),名字]
问题:[ID,PRODUCT_ID(FK),文本]
问题是,我们如何设计一个表来存储每个客户的答案,通过考虑每个客户只能回答其产品的问题。例如,如果你的答案是这样的:
customer_answer:[ID,CUSTOMER_ID(FK),question_id(FK),答案]
那么它错了,因为如果我们的表的样本数据如下所示:
产品:[1, “椅子”],[2, “表”]
客户:[1,1, “安东尼·昆”],[2,2,“玛丽莲梦露“]
问题:[1,1,“该产品的任何建议?” ],[2,1,“你估计这把椅子怎么样 ?” ]
则可能一个可能的排具有低于数据:
customer_answer:[1,2,1, '不,谢谢']
这是错误的,因为id#2的客户没有product_id#1,所以对于这个问题可能是错误的表格。
在这种情况下我们能做些什么?
它没关系,但顺便说一句我正在使用mysql来解决这个问题。
您验证数据录入。 –
客户只能对产品提问一次吗?如果他们在一个日期订购产品,并且对此感到满意,但是稍后再订购并且遇到问题会怎么样? – LittleBobbyTables
@LittleBobbyTables:在这个问题中无关紧要。 – linker