clnr073 / BibleStudyHub_repository

0 stars 0 forks source link

refactor: データベースの構造の整理 #13

Open clnr073 opened 11 months ago

clnr073 commented 11 months ago

概要

いくつかのデータベース構造の修正に基づき、マイグレーションを実行する。

notesテーブルとcommentsテーブルが多対多の関係にあったため、これを1対多の関係にしたい: -notesテーブルとcommentsテーブルの中間テーブルを削除する。 -同様に、questionsテーブルとcommentsテーブルの中間テーブルも削除する。

commentsテーブルがnotesテーブルとquestionsテーブル両方のコメントを持つような構造であったが、これをそれぞれのテーブルについて分割する: -commetsテーブルをnotesテーブルのコメントをinsertするために活用する。 -questionsテーブルのコメントをinsertするテーブルを新たに作成する。commentsテーブルとの名称の重複を避けるため、answersテーブルとする。 -新しく作ったテーブルについてモデルを作成する。

変更点

既存のテーブルのうち、削除するテーブルについてマイグレーションファイルを作成する。 php artisan make:migration drop_comment_note_table php artisan make:migration drop_comment_question_table

upメソッドに次を追加: Schema::dropIfExists('tableName');

新規テーブル作成の及び特定のテーブルにカラム追加 php artisan make:migration add_note_id_to_comments_table --table=comments

質問の回答をinsertするため、answersテーブルを作成。answersテーブルとtestamentsテーブルのリレーションシップも定義するため、中間テーブルを作成。 php artisan make:migration create_answers_table php artisan make:migration create_answer_testament_table

おまけ:questionが複数のtagを持てるようにするため、中間テーブルを作成 php artisan make:migration create_question_tag_table

マイグレーションを実行

answersテーブルのモデルAnswerを作成 php artisan make:model Answer

clnr073 commented 11 months ago

16 でリクエストデータを保存する際にエラーが発生した。不要になったnotesテーブルのtag_idカラムを削除しておらず、当該カラムに値を指定していないためエラーが起こっていた。このカラムをマイグレーションファイルを修正して削除する。

clnr073 commented 10 months ago

これまでのデータベースの設計では、タグの色を指定するためにtagsテーブルとcolorsテーブルのリレーションシップを定義していたが、タグとは無関係に聖句そのものに色を指定できるようにしたい。