gormによるテーブル定義について

1.2K Views

January 18, 24

スライド概要

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

関連スライド

各ページのテキスト
1.

1/9 GolangのORMライブラリ・GORM データテーブル定義編

2.

2/9 Object-Relational Mapper(ORM)とは? SQLを書かずにオブジェクトメソッドでDBを操作するためのツール ・CRUD操作 ・作成日時や更新日時の自動挿入 ・マイグレーション ・トランザクション ・DryRun Etc.

3.

3/9 GORMの特徴 ・静的型付け言語で作られたフル機能ORM ・厳格な記述規約によるコード管理の緩和 ・構造体によるフィールド定義 ・Hooksによる、処理の前後に呼ばれる関数の定義 ・イーガーロードによる検索効率化(N+1問題対策)

4.

4/9 GORMによるUsersテーブル定義 データテーブル作成のため、Goの構造体を定義する。 各単語は必ず大文字から始めること テーブル名を複数形で書く gorm: から始まるタグで フィールドのルールを 定義する フィールド名を 定義する データ型を定義する 配列型など、RDBMSごとの固有の型は SQL形式で定義を記入する

5.

5/9 マイグレーションで作成されたUsersテーブル 定義したテーブル名、フィールド名はすべて スネークケースに変換される テーブル名はusers 自動採番 配列型 主キーやユニークキーなど

6.

テーブル作成のコーディング① databaseパッケージに前述と同じ要領で5つの構造体を定義する 6/9

7.

7/9 テーブル作成のコーディング② 5つの構造体から テーブル作成 データベースに接続し、 AutoMigrate関数を実行するだけで テーブル定義を最新に保つことができる

8.

8/9 テーブル作成のコーディング③ 少ないコード量でテーブルの定義を簡単に行うことができた 自動採番のための~_id_seqも作成されている

9.

9/9 GORMを使った所感 ・オブジェクトでDB操作が快適に行える点が良い ・豊富なタグ機能により、柔軟なかつ厳格なルール付けを行うことが可能 (外部キー制約や読み取り専用フィールドなど) ・GolangのGraphQLライブラリと相性が良い (記述規約がほとんど同じ)