cakePHPにおいて「id」列は特別な意味があることを知りました。
ですがシステムでは「no」列を主キーとして扱いたい(検索や更新に使いたい)場合、皆さんはどうされていますでしょうか?
「CakePHPでのDBデザイン「主キーの決定」」
https://teratail.com/questions/28495
上記の質問と少し重複する所もあります・・・。
上記の回答によりますと
cakePHP規約に従った方がメリットがありそうなのですが、初心者につきメリットが今ひとつ理解できません・・・。
【補足】「no」列について
テーブルはマスタです。
データは画面から作成はなく、大量のインポートデータで作成する予定です。
他のテーブルと紐付されており、その紐付けに「no」が使われております。
以下の3パターンになりますでしょうか?
【パターン1】
考え方:cakePHPに従いid列追加。一応主キーにしておくかな。でもシステム内ではno列を使いますね!
テーブルは以下のように定義
id:主キー
no:
cakePHP上で
public $primaryKey = 'no';
を行い便宜変更する。
この後、
$primaryKey = 'id';
として
元に戻したが良いのか、そのままで良いのか分かっていません・・・(^^;
【パターン2】
考え方:cakePHPに従いid列を一応追加。一応追加しとくだけでnoを主キーにし、システム内でもno列の方を使いますね!
テーブルは以下のように定義
id:
no:主キー
【パターン3】
考え方:いっそのこと最初からid列は定義しない。no列だけ。
テーブルは以下のように定義
no:主キー
この場合、cakePHPの何らかのメリットは受けられない?
でもそれだったら、パターン1と何が違う?あれ?
下記にもありますが、id列が存在しないと色んな所でエラーが出るそうなんでこれまた悩んでおります。。。
「CakePHPでテーブルのidを任意に設定し、連結したい」
https://teratail.com/questions/7804
皆さんの色んなご意見いただけますでしょうか?
分かりにくい文章かもしれません。すみませんがどうぞ宜しくお願い致します。
回答3件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2016/03/19 00:48