質問: 現在id,name,subject,bodyを持ったtestテーブルがあるのですが、 そこに以下のフィールドを追加するよう課題が出たのですが 完成形がイメージできずどうやってはじめたらいいのか分かりません。 特にparent_idで、説明の部分もですが 「parent_idはレコードに親子の関係性を持たせることを意図しており、parent_idがnullは親レコード、nullでない場合は親のidが入っている想定です。」と、言われてて理解ができずに困っっています。 フィールド名 型 説明 parent_id int型 親のid。子レコードの場合はnull post_user varchar(8) 投稿者名 created_at datetime not null 作成日時 updated_at datetime not null 更新日時 deleted_at datetime null 削除日。未削除はnull 完成形のイメージとフィールドの追加の仕方が分かる方がいらっしゃいましたらご教示お願いいたします。 現在のtestテーブルです↓ ![今のtestテーブル](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/3ace4a455cb14bdb47ddd10e8781cbdd.png) ![フィールドの追加](https://teratail-v2.storage.googleapis.com/uploads/contributed_images/0c482e7ea4417c6ab6b38082e510f0c2.png) フィールドの追加はできていると思うのですが、オプション設定がよく分かりませんでした。 parent_idがnullは親レコード、nullでない場合は親のidというのはどうすれば設定できるのでしょうか?
回答: 回答は出ているのでご参考です ``` CREATE TABLE t_test(id int not null primary key, name varchar(50), subject varchar(50), body text); #追加項目とfkeyを付けてみる ALTER TABLE t_test ADD ( parent_id int, FOREIGN KEY (parent_id) REFERENCES t_test(id), post_user varchar(8), created_at datetime not null, updated_at datetime not null, deleted_at datetime null); #試しに2は1に、4,5は3を親にしてみる。 INSERT INTO t_test VALUES (1,'三村','青森','ありがとうごす',NULL,'hoge',now(),now(),NULL), (2,'西脇','京都','おおきに',1,'hoge',now(),now(),NULL), (3,'中村','長崎','ありがとうござす',NULL,'hoge',now(),now(),NULL), (4,'阿部','長野','おかたしけ',3,'hoge',now(),now(),NULL), (5,'玉城','沖縄','にふぇーでーびる',3,'hoge',now(),now(),NULL); #親はNULLで子は親idが無いとエラーになる INSERT INTO t_test VALUES (9,'西郷','鹿児島','ありがとさげもした',6,'hoge',now(),now(),NULL); ```