我有一個小型數據庫,有些用戶需要回答10個問題:我想比較男性和女性用戶,並返回一定比例的對於每對夫婦匹配的答案:PHP + MySQL:比較數據庫中的行,以獲得匹配字段的百分比
我的數據庫是一個非常簡單的:
表:USERS
ID_user(INT), name(VARCHAR), gender (M or F), answer1(VARCHAR), ..., answer10
我還創建一個表來存儲先前的匹配結果(所以我不會有積極的通過查看匹配是否已經匹配兩次存儲在此表)
表:MATCH
ID_match, ID_user(M), ID_user(F), match_date
例:
male1 answered: 1,2,3,1,2,3,4,3,2,3
male2 answered: 5,2,2,1,5,3,3,3,1,3
female 1 answered: 1,1,3,1,4,3,1,3,2,2
female 2 answered: 4,2,3,1,2,6,4,3,6,3
結果:
match male1-female1 = 6
match male1-female2 = 7
match male2-female1 = 3
match male2-female2 = 4
我還需要發送一些電子郵件,誰擁有匹配的百分比超過60%;所有這些將被整合到wordpress網站中,但這是一個次要問題:p
請幫忙。在此先感謝
如果你能控制你的數據庫,那麼最好的方法就是重新設計你的數據庫。規範化的版本將有兩個表格用於記錄人員,一個用於答案(ID_answer(INT),用戶(INT),answer_number(INT),answer_chosen(INT))。你會發現這個問題更容易通過規範化的數據庫結構來解決 – Sqoo
在我的第一個數據庫思想中,有更多的表格,比如:問題,答案,用戶,匹配等。 – user3722661
數據庫有最佳設計,可以產生最大效率,靈活性並保存數據的完整性。你應該使用兩個表格而不是一個表格的原因可以通過簡單的改變來說明有11個問題。在你的設計中,你將不得不改變桌子,而用兩張桌子你不需要改變任何東西。這個過程稱爲標準化,值得一讀。 – Sqoo