Next.js とSupabaseで求人マッチングアプリを作る②~マスターデータ設定~
今回は前回の記事に続き、今後必要となるマスターテーブル群を作成していきます。
Supabaseの`Table Editor`を開き、下記の順序で設定してください。(外部キーの関係上順番通りに作成しないとエラーになる可能性があるため注意)
Supabaseは、この通りインターフェースを通して、簡単にテーブル設計が可能です。
是非この記事を通して、DBの設定方法等を勉強してみてください。
業界テーブル(mst_industry)
ITや金融、商社など業界を指定するテーブルです。
下記のような設定で作成します。
名前:mst_industry
id
varchar型
financial、tradingなど英語名をIDにする。
primaryキー
industry
varchar型
業界の日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
サンプルのデータは下記のような形で3つほど作成しておいてください。
企業の基本情報テーブル(mst_company)
企業の基本情報を設定するためのテーブルです。
下記のような設定で作成します。
名前:mst_company
user_uid
uuid型
auth.user.idを外部参照します。
primaryキー
name
varchar型
企業名
not null
zipcode
varchar型
郵便番号
not null
address1
varchar型
住所の一つ目
not null
address2
varchar型
住所の二つ目
not null
phone
varchar型
電話番号
unique
email1
varchar型
メールアドレス
not null
unique
url
text型
会社サイトのURL
capital
int8型
資本金
employee
int8型
従業員数
annual_turnover
int8型
年商
established_at
date型
設立
industry_id_1
varchar型
業界ID1
industry_id_2
varchar型
業界ID2
industry_id_3
varchar型
業界ID3
company_image_url_1
text型
会社画像URL1
company_image_url_2
text型
会社画像URL2
company_image_url_3
text型
会社画像URL3
company_image_url_4
text型
会社画像URL4
company_image_url_5
text型
会社画像URL5
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
国籍テーブル(mst_nationality)
国籍を定義するテーブルです。
下記のように設定します。
名前:mst_nationality
id
varchar型
japan、usなど英語名をIDにする。
primaryキー
nationality
varchar型
国籍の日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
サンプルデータとして二つほど入力しておきます。
職種テーブル(mst_occupation)
職種を定義するテーブルです。
下記のように設定します。
名前:mst_occupation
id
varchar型
sales、it_engineerなど英語名をIDにする。
primaryキー
occupation
varchar型
職種の日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
サンプルデータとして三件ほど入力しておきます。
資格テーブル(mst_qualification)
資格情報を定義するテーブルです。
下記のように設定します。
名前:mst_qualification
id
varchar型
primaryキー
qualification
varchar型
資格の日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
在留資格テーブル(mst_residence_qualification)
在留資格の種類を定義するテーブルです。
下記のように設定します。
名前:mst_residence_qualification
id
varchar型
在留資格の英語名
primaryキー
residence_qualification
varchar型
在留資格の日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
サンプルデータを三件ほど追加しておきます。
スキル情報テーブル(mst_skill)
スキル情報を定義するテーブルです。
下記のように設定します。
名前:mst_skill
id
varchar型
スキルの英語名
primaryキー
skill
varchar型
スキルの日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
勤務地テーブル(mst_work_location)
スキル情報を定義するテーブルです。
下記のように設定します。
名前:mst_work_location
id
varchar型
勤務地の英語名(or 都道府県コードなど、後程決めます)
primaryキー
work_location
varchar型
勤務地の日本語名
not null
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
求職者の基本情報テーブル(mst_job_seeker)
求職者の基本情報を定義するテーブルです。
下記のように設定します。
名前:mst_job_seeker
user_uid
uuid型
auth.user.idを外部参照します。
primaryキー
last_name
varchar型
姓
not null
first_name
varchar型
名
not null
middle_name
varchar型
ミドルネーム
gender
int2型
性別
not null
birthday
date型
誕生日
not null
zipcode
varchar型
郵便番号
address1
varchar型
住所の一つ目
address2
varchar型
住所の二つ目
phone
varchar型
電話番号
unique
email1
varchar型
メールアドレス
not null
unique
email2
varchar型
メールアドレス2
unique
email3
varchar型
メールアドレス3
unique
nationality_id
varchar型
国籍ID
current_annual_income
int8型
現在の年収
desired_annual_income
int8型
希望年収
spouse
bool型
配偶者がいるかどうか
desired_occupation_id_1
varchar型
希望職種1
desired_occupation_id_2
varchar型
希望職種2
desired_occupation_id_3
varchar型
希望職種3
desired_change_job_date
date型
転職希望日
residence_qualification_id
varchar型
在留資格ID
residence qualification_expired
date型
在留資格期限
residence qualification_front_image_url
text型
在留資格カード表のファイルURL
residence qualification_back_image_url
text型
在留資格カード裏のファイルURL
profile_image_url
text型
プロフィール画像のファイルURL
resume_file_url
text型
履歴書のファイルURL
resume_file_name
text型
履歴書のファイル名
created_at
作成日。デフォルトのままでOK
not null
updated_at
created_atと同じ設定で作成
delete_flg
bool型でデフォルト値falseで作成
not null
参考画像
ポリシー設定
mst_companyとmst_job_seeker
この二つのテーブルに関しては、
`INSERT`、`SELECT`、`UPDATE`の三つに対し下記のCHECK(もしくはUSING)の設定を行ってください。
ターゲットとするロールは`authenticated`です。
(auth.uid() = user_uid)
それ以外は`ALL`の権限でCHECK(もしくはUSING)の設定をすべて`true`にしていただければOKです。
同じくターゲットとするロールは`authenticated`です。
ここまででマスターテーブルの設定は以上になります。
次回は企業のプロファイル変更機能を実装します。
その他参考資料など
なお弊社では『マッチングワン』という『低コスト・短期にマッチングサービスを構築できる』サービスを展開しており、今回ご紹介するコードは、その『マッチングワン』でも使われているコードとなります。
本記事で紹介したようなプロダクトを開発されたい場合は、是非お問い合わせください。
またTodoONada株式会社では、この記事で紹介した以外にも、Supabase・Next.jsを使ったアプリの作成方法についてご紹介しています。
下記記事にて一覧を見ることができますので、ぜひこちらもご覧ください!
お問合せ&各種リンク
お問合せ:GoogleForm
ホームページ:https://libproc.com
運営会社:TodoONada株式会社
presented by
サポートしていただくと、筆者のやる気がガンガンアップします!