電訪系統

以下為目前我已知的條件及限制

(以下使用者代表公司員工,工讀生會直接標示為工讀生)

  • 匯入的檔案欄位為
    • Tag
    • 職稱
    • 公司電話
    • 公司分機
    • 公司名稱
    • 手機
    • E-Mail
  • 匯入多少筆資料就必須匯出多少筆資料,例如匯入400筆資料,而匯出時也必須將原來匯入的400筆資料匯出來
  • 目前以email作為資料重複判別依據。
  • 當匯入的資料有重複資料時,工讀生僅能播打其中一筆資料(目前取得第一筆資料),而其他資料要標記為重複。
  • 使用者可以將名單標記為特殊tag,以便後續指定特殊工讀生播打電話的優先清單(例如工讀生A比較有電訪經驗,所以將tag為VIP的資料指定給他播打)。
  • 電訪資料一律使用匯入方式加入,但不能編輯電訪資料。所以這幾天討論的重點在於如何讓使用者用匯入方式更新名單,以及哪些欄位或資料准許或不可被更新。
  • 每筆資料透過狀態控制,目前已知的狀態有:已報名、考慮中、未接電話、晚點連絡、已離職、不報名、別再打擾、其它。

目前我的設計資料表(符合上一版),現在尚未更新為目前版本程式

說明:上一版本跟目前版本不同之處在於:當工讀生更新資料時資料存法不同
上一版:不覆蓋原始資料,而是再新增一筆新資料,但當使用者在後台瀏覽時會顯示新的資料內容,而不是顯示舊的資料。
目前版:當工讀生修改資料時,直接更新欄位資料,若修改欄位為email時,會存入舊的email及新的email。

目前匯入名單資料儲存大括流程:

  1. 存入批次檔案資訊
  2. 存入電訪者資料
  3. 存入tag(如果有標記tag)

以下資料表關係圖







hierarchy



upload_files

upload_files



respondents

respondents



upload_files->respondents





taggables

taggables



respondents->taggables





tag

tag



taggables->tag





資料表欄位

資料表:respondents

欄位 屬性 說明
id int 自動編號(流水號)
project_id int 專案代碼
email string 電訪者email
data long text 電訪者的資料(除Email),資料加密後存入
remark text 工讀生備註欄位
parent_id int 主要資料respondent_id
status enum 資料狀態
目前可選的狀態已報名、考慮中、未接電話、晚點連絡、已離職、不報名、別再打擾、其它。
status_other text 資料狀態為其他時,存入其他原因
duplicate_id int 若該筆資料已存在於其他資料時,會將那筆資料的id存在這裡
upload_file_id int 上傳檔案id
part_time_staff_id int 預設為空值,若工讀生被指派該筆資料時,會將該工讀生的id存入此欄位
survey_at datetime 電訪時間
survey_times string 電訪次數,該欄位用於重複播打順序,預設為00。
若工讀生第一次去電時,該受訪者未接聽電話,故資料更新時,會將該欄位數字+1,以便於短時間內不會再去電給該受訪者(前提為資料筆數很多時)。
created_at datetime 資料建立時間
updated_at datetime 資料最後更新時間

資料表:upload_files

欄位 屬性 說明
id int 自動編號(流水號)
project_id int 專案代碼
file_name string 檔案名稱
status enum 檔案匯入狀態,狀態有ready、import、、checking、process、finished、error、fail。
record_count int 資料筆數,預設為0
created_at datetime 資料建立時間
updated_at datetime 資料最後更新時間

資料表:tags

欄位 屬性 說明
id int 自動編號(流水號)
name string tag名稱
created_at datetime 資料建立時間
updated_at datetime 資料最後更新時間

資料表:taggables

欄位 屬性 說明
id int 自動編號(流水號)
tag_id int tag的id
taggable_id int 資料id
taggable_type string 資料id來源資料表路徑
created_at datetime 資料建立時間
updated_at datetime 資料最後更新時間