まず第一に、あなたは素晴らしい聴衆だということを伝えたいと思います。
Footableを持つモデルがあるアプリケーションを作成していますFoos。そして、Foo に別のパラメーター HABTM パラメーターを与えたいと思いますBar。しかし、私はテーブルを作成したくありませんBar。Bar開始時に 5 つのポジションがあり、5 年後にはおそらく 7 つのポジションに成長するか、まったくないためです。したがって、別のテーブルを作成して、CakePHP に別の SELECT でそのテーブルを調べさせる必要はないと思います。誰でもこれが達成できるという考えを持っていますか?
私が考える1つの解決策は、テーブル用のフィクスチャを作成し、実際にはテーブルBarsのみを追加することBars_Foosです(とにかく大きくはなりません)。しかし、通常のテストフィクスチャを使用する方法が見つかりませんController
2番目の解決策は、JSONまたはシリアル化された配列をFoo1つのフィールドに保存し、ロジックをモデルに移動することですが、それが最善の解決策かどうかはわかりません. 仮想フィールドのようなもの。
実際の例:
だから私は好きBikesです。そして、すべてBikeがそのmain_type. これは今のところ{"MTB","Road","Trekking","City","Downhill"}です。長い間、このリストはそれほど大きくならないことを私は知っています. 数年で 2 つまたは 5 つのポジションになる可能性があります。それでも比較的短くなります。
(専門のバイクは何百種類もあるという方のために、別のパラメータ欄がありますspecialized_type)
これは HABTM リレーションである必要がありますが、main_typesテーブルは非常に小さいので、テーブルの作成を避けて、より簡単な解決方法を見つけたいと考えています。
なぜなら
- このような少量のデータでMySQLを悩ませます
- MySQL クエリが複雑になる
- 追加のモデルを作成する必要があります
MainType - ほとんどのデータを必要とせず、使用したい場合にバインドを解除するモデルが他にもあります
recursive - 好きなものをここに挿入してください...