問題定義:一家公司想通過詢問一些問題來衡量其產品的客戶滿意度。公司的產品數據存儲在「產品」表中,每個產品的客戶數據存儲在「客戶」表中,並且每個產品的問題存儲在問題表中。作爲簡單如下:基本數據庫設計場景
產品:[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