2011-01-11 9 views
2

まず質問:私はそう私も間違って何かを理解することがあります:)そこに私に指示いけない、CakePHPの料理から命名規則のルールを読んで、もしそうなら、私を修正してくださいしている;)CakePHPのMySQLデータベースの命名規則は

問題

  • 項目
  • クエスト

その後、私が持っていたテーブル:

イムたが、私はテーブルを持っているということです
  • item_has_quest_requirements
  • quest_has_item_requirements
  • quest_has_item_rewards
  • これらの2つのテーブルを接続する2つの主キーを持つだけでHABTMテーブルですquest_has_item_recommends

。さて、彼らの中にはOWN特有の列もあります。そのため、私はそれらを同じテーブルに入れていませんでした。たとえば、item_has_quest_requirementsにはただのキーがありますが、quest_has_item_requirementsとなります。と同様に報酬もお勧めします。

しかし、私はCakePHPの命名規則に従い、複合主キーを使用すべきではなく、2つのテーブルをHABTMテーブルとして接続する必要がある場合は、テーブル名のアルファベット順に名前を付ける必要があります。つまり、これらのテーブルはすべてAFAIKになります:items_questsテーブルは不可能です。 items_quest_requirements列があり、その後のようなHABTMテーブルになるだろう quest_requirements

唯一の方法は、のような、全く新しい、余分なテーブルを作成するために、そしてだろうか?

これは私の心の中で圧延されているので、最良の方法は何かを啓発することができますか?

+0

AFAIK CakePHPの結合HABTMテーブルに追加データを保存する方法はありません。私が間違っているなら誰か私を修正してください。 –

答えて

3

複数テーブル間の関連付けがある場合の名前付け規則はありません。この場合は、モデルに関連するテーブルを手動で指定する必要があります(詳細はhttp://book.cakephp.org/view/1039/Associations-Linking-Models-Together#hasAndBelongsToMany-HABTM-1044を参照)。

しかし、いくつかの結合テーブルには追加の列が含まれていることがあります。このようなシナリオでは、HABTM関連の代わりにJoin Models(「hasMany through」とも呼ばれます)を使用する方がよいでしょう。

+1

+1。 OPは 'item_has_quest_requirements'関連のHABTM関係を定義し、次に他の3つのモデルのJoin Modelを定義する必要があります。 – Stephen

0

http://cakeapp.comで再生しようとすると、ケーキの命名規則が使用されます。その後、DBスキーマをダウンロードすることができます。