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