質問: ### はじめに Laravel学習中のものです。 掲示板のようなサイトを作成しようとしています。 ユーザーテーブルは作成しますが、認証機能はなく、 投稿するたびに名前をフォームに入力して投稿するものだという認識でいていただければと思います。 MySQLを使用して、リレーションがある状態での保存機能について質問させていただきます。 ### 作成したテーブル Postテーブル ``` id user_id body ``` userテーブル ``` id name ``` ### 前提・実現したいこと 投稿時、名前を内容を投稿します。 そのときに、 名前はuserテーブルに既に入っていれば、そのidをpostテーブルに保存、 入っていなければ、userテーブルに保存し、その後postテーブルにもidを保存 としたいです。 このような構造の場合、メジャーな実装方法をご教授いただきたいです。 そもそもこういう構造にしたほうがいいなどといったものがあればそちらもご教授いただきたいです。 よろしくお願いいたします。 ### 補足情報(FW/ツールのバージョンなど) Laravel5.7 PHP7系 MySQL
回答: > > 名前はuserテーブルに既に入っていれば、そのidをpostテーブルに保存、 > > 入っていなければ、userテーブルに保存し、その後postテーブルにもidを保存 > > としたいです。 > > > このような構造の場合、メジャーな実装方法をご教授いただきたいです。 > > > 名前の一意性を確認し、その結果によってその後の処理を分岐します。 データベース側で処理するか、php 側で実装するかは、外の要件との相談になるかと。