質問: 本をもとに初めてcakePHPでプログラミング中です。 PHP、テーブル設計は経験者です。 cakePHPにおける”id”についてお聞きしたいです bakeコマンドにてとりあえず動作できる物が出来ました。 以下のようなテーブルをもとに作りました。 テーブル名:test フィールド:id,name ところが、bakeで作成された入力画面には、「name」しか入力用のテキストボックスが作られていませんでした。 「id」にも入力したいのですが通常どうするのでしょうか? そもそも「id」= 主キーであるため編集すること自体がよろしくない。 だから「id」は編集できない設計思想になっている、と予想しました。 ですが例えば、 「01:男性 02:女性 などの定数データをテーブルに登録したい。それも画面から行いたい。」 ような場合はどうするのでしょうか? ※男性のidは、オートナンバーを使わずこちらが決めた値"01"にしておきたいわけです。 このような場合の設計は、cakePHPでは通常どうするのでしょうか? 以上です。 宜しくお願い致します。
回答: cakePHPはサロゲートキーの設計思想で、idを主キーとしています。 ご推察のとおり「主キーであるため編集すること自体がよろしくない」です。 cakePHPの規約に則り作成するのでしたらサロゲートキー以外にgender_idフィールドを追加して フィールド:id,gender_id,name とすると良いと思います。 gender_idを画面から変更できるようにし、他テーブルに登録する際はidを使用します。