さて、私の最初の質問は何度も変更されたので、それを削除して質問を再定式化することにしました。問題の適切な解決策を見つけるために、さまざまなモデル名で小さなテストケースプロジェクトを作成しました。
警告:データベースとテーブルを混同しないでください
動機:法的な問題とパフォーマンスの問題のために、ユーザーデータを複数のデータベースに分割しました。
現在、私は複数の'を持ち、それぞれが複数のテーブル(テーブルの1つ)を持つ独自のデータベースを持っているCakePHPプロジェクトに取り組んでいます。今、私は最初に何かを説明する必要があります:User
User
cars
すべてUser
に独自のデータベース(テーブルやデータベースではない)があるため、データベース名は次のようになります。
- [データベース]
app
(これはアプリのメインデータベースです)- [テーブル]
users
- [表]
permissions
(この質問には関係ありません)
- [テーブル]
- [データベース]
app_user1
( 1はこのデータベースUser.id
全体を所有します)- [TABLE]
cars
( 1が完全に所有するテーブルUser.id
)
- [TABLE]
- [データベース]
app_user2
( 2はこのデータベースUser.id
全体を所有しています)- [TABLE]
cars
( 2が完全に所有するテーブルUser.id
)
- [TABLE]
- 等...
データベース/テーブルの定義とモデルとの関係を明確にする可能性のある小さな図面を作成しました。
問題!!!
ログインするまで、どのデータベースに接続するかわかりません。とそのデータベースは動的に作成されるため、を使用できません。User
User
app/Config/database.php
だから私は現在、CakePHPの基本的なデータベースの振る舞いをバイパスするためにModel
とクラスの拡張機能を書いています。ConnectionManager
したがって、Car
モデルは使用するデータベースを認識しています。しかし、私はこれがもっと簡単にできると感じています!
だから私はそれがすべて1つの質問に要約されると思います:
これを行う簡単な方法はありますか?!
私の問題を読んで理解するために時間と労力を費やしてくれる人に感謝します!