実現したいこと
PHP&MySQLで求人企業と求職者のマッチングサイトを構築しています。
よくある絞り込み検索ではなく求人企業側と求職ユーザー側で設定した条件に一致している度合いでランク付けしたいのです。
絞り込まずにすべての求人情報に対しどの程度マッチしているかを表示しその度合いでソートしたいと言う事です。
例えば条件の選択肢が100件あったとして全てマッチしていれば100、半分だったら50などのように
数値を算出しソートしたいのです。
いいアイデアが浮かばず困っていますのでご教授お願いいたします。
例えば条件の選択肢として(WEB側でチェックボックスで登録)
地域:東京、埼玉、千葉、神奈川
業種:和食店、洋食店、中華店、アジア
が有った場合「求人企業マッチングテーブル」と「求人企業マッチングテーブル」に下記のようにデータが登録されます。
求人企業マッチングテーブル
企業ID | 区分 | 選 択 |
---|---|---|
1 | 業種 | 和食店 |
1 | 業種 | 洋食店 |
1 | 地域 | 東京 |
2 | 業種 | 中華店 |
2 | 地域 | 神奈川 |
3 | 業種 | 和食店 |
3 | 業種 | 洋食店 |
3 | 業種 | 中華店 |
3 | 業種 | アジア |
3 | 地域 | 東京 |
3 | 地域 | 千葉 |
3 | 地域 | 神奈川 |
求職者マッチングテーブル
求職ID | 区分 | 選 択 |
---|---|---|
1 | 業種 | 和食店 |
1 | 業種 | 洋食店 |
1 | 業種 | 中華店 |
1 | 地域 | 東京 |
1 | 地域 | 千葉 |
1 | 地域 | 神奈川 |
2 | 業種 | 洋食店 |
2 | 業種 | 中華店 |
2 | 地域 | 東京 |
この時
下記のようなデータを作りたいです
求職ID | 企業ID | 選択数 | マッチ | マッチ率 |
---|---|---|---|---|
1 | 1 | 6 | 3 | 50 |
1 | 2 | 6 | 2 | 33 |
1 | 3 | 6 | 6 | 100 |
2 | 1 | 3 | 2 | 67 |
2 | 2 | 3 | 1 | 33 |
2 | 3 | 3 | 3 | 100 |
で求職者マイページで求人情報一覧を見たとき
下記のような順番でソートしたいのです。
求職ID1の場合
求職ID | 企業ID | 選択数 | マッチ | マッチ率 |
---|---|---|---|---|
1 | 3 | 6 | 6 | 100 |
1 | 1 | 6 | 3 | 50 |
1 | 2 | 6 | 2 | 33 |
求職ID2の場合
求職ID | 企業ID | 選択数 | マッチ | マッチ率 |
---|---|---|---|---|
2 | 3 | 3 | 3 | 100 |
2 | 1 | 3 | 2 | 67 |
2 | 2 | 3 | 1 | 33 |
DB:MySQL5.7
言語:PHP7.2
回答2件
あなたの回答
tips
プレビュー