今回は前回の記事に続き、今後必要となるマスターテーブル群を作成していきます。
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を使ったアプリの作成方法についてご紹介しています。
下記記事にて一覧を見ることができますので、ぜひこちらもご覧ください!https://libproc.com/category/supabase/
お問合せ&各種リンク
- お問合せ:GoogleForm
- ホームページ:https://libproc.com
- 運営会社:TodoONada株式会社
- Twitter:https://twitter.com/Todoonada_corp
- Instagram:https://www.instagram.com/todoonada_corp/
- Youtube:https://www.youtube.com/@todoonada_corp/
- Tiktok:https://www.tiktok.com/@todoonada_corp
presented by