見出し画像

GORMのModelメソッドとTableメソッドの使い分けについて

Feelcercaのゲーム開発では、APIサーバのコーディングにGo言語を使用し、データベース(DB)の操作(CRUD)にはGORMを採用しています。GORMでDB操作をする際には、テーブルの指定にModelメソッドとTableメソッドの2つの方法がありますが、これらには重要な違いが存在します。

Modelメソッドの特徴

Modelメソッドは構造体の定義に基づいてクエリが生成されます。

この場合、created_atupdated_at、deleted_atの自動管理機能が使え、一般的なCRUD操作が便利です。

Tableメソッドの特徴

Tableメソッドはより低レベルなテーブルの指定です。

このメソッドを使うとUpdateやUpdatesを呼び出した際にupdated_atが更新されなかったり、Firstなどの際にdeleted_atを無視してレコードを取得したりといった問題が生じることがあります。

注意点

私自身、ModelTableメソッドを混在して使用していたことで、不具合が発生しました。現在は修正済みですが、注意が必要です。

お勧めの使い分け

基本的には一般的なCRUD操作にはModelメソッドを使用し、通常のCRUD操作を超えて複雑なクエリ操作や柔軟性とカスタマイズが求められる場合には、特定の操作でTableメソッドを使うようにするのがお勧めです。これにより、適切に機能を利用しながら、予期せぬ問題を防ぐことができます。


よろしければサポートをお願い致します。いただいたサポートは新作ゲーム開発のための費用として使わせて頂きます。