0

それらをデータベースデータの取得/更新の方法に組み合わせることが良い(受け入れられる)慣行であるかどうか疑問に思っていましたか?

たとえば、私のデータベースには 2 つのテーブル ( Booksand Users) と 1 つの「多対多」テーブルがありますBooks_Users。ユーザーが本を評価すると、Books_Usersテーブルが更新されます (abook_idと aを持つ新しいレコードは、user_id挿入または削除されている必要があります)。

ARメソッドのみを使用してそれを行う方法をグーグル検索しましたが、良い解決策が見つかりませんでした. アクションのようにCDbCommand execute()非常に単純なSQLクエリを使用することになりました。INSERT INTO books_users(book_id, user_id) VALUES(:bid , :uid);BookController

ポイントは、すべてのモデルが拡張さCActiveRecordれ、AR メソッドをずっと使用しているということです。

ここで質問があります。さまざまなアプローチのそのようなブレンドは、後悔することなく使用できるのでしょうか?

4

1 に答える 1

0

Yii はMany_TO_Manyリレーションを (ある程度) サポートしており、このサポートは 1.1.x リリースhttp://www.yiiframework.com/doc/guide/database.arrを通じて改善されています。

一般的にCDbCommand、SQL を使用して汚す必要はないと思います。特に取得部分であるARで問題に直面することはありませんが、挿入(作成/更新) は問題になる可能性があります (大きな問題ではありません)ただし、データベース レベル (データベース トリガー) またはアプリ レベル (モデル& ) でいくつかのトリガーを使用して解決できるため、中間テーブル (ピボット) レコードの入力/更新を自動化できます。afterCreate()afterUpdate()

もう 1 つの (よりクリーンな) 方法は、次の拡張機能を使用することです。

最後に、関連するお問い合わせについては、この質問とこの質問をご覧ください。

于 2012-08-19T21:40:43.943 に答える