3


0

私はちょっとしたアドバイスを探していました、現在私のDBデザインは1人のユーザーが多くのブログ投稿を持っているということです。 今私はユーザークラスとブログクラスがあります。

ただし、そのユーザーのすべてのブログ投稿を取得するための適切な方法についてはよくわかりません。 私はブログオブジェクトを返すユーザークラスでgetAllBlogs()関数を作成しますか、それともユーザーで検索できるメインのブログクラスを作成するのですか。

ありがとう:-)

5 Answer


6


私は個人的に後者のオプションを使用したいと思います。 これは、ブログクラスがブログテーブルを処理する方法を知っているためです。 私はユーザークラスにブログ固有のDBコードを書きたくありません。 一方、 `+ Blog

getAllBlogsForUser()`のラッパーとして ` User :: getAllBlogs()+`を追加できます。


2


それは本当にあなた次第です。 ユーザーはブログと非常に密接に関連しているので、両方を行うことができます。

彼らがどれほどうまく一緒に遊べるか考えてみましょう。

_blogs)|| $ force){$ this  - > _ blogs = BlogClass :: getBlogsByUser($ this-> user_id); $ this  - > _ blogsを返します。 }}

今すぐあなたが好きなときにいつでもユーザーのブログをつかむことができます、そしてそれは必要なときにだけそれらを取得します。 $ forceパラメータを使用すると、強制的にリロードを実行できます。


1


これが実際に役立つ答えであるかどうか私はわかりません。 ただし、データベースの設計が正しい正規化手法に従って正しく行われている場合は、 それはあなたのクラスのレイアウトも示しているはずです。 Userは独立したエンティティであり、投稿は外部キーとしてuser_idか何かを使用しているので、それは明らかにあなたがマスターになるべきだという考えをあなたに与えるべきです。 ユーザーは投稿なしで存在することができますが、投稿は存在しないことはできません。 そのため、get postsメソッドをusersクラスではなくpostingsクラスに入れることは理にかなっています。


0


`+ User

getPosts `と ` Posts :: findByUserId +`のように両方を使用します(モデル名としての "Posts"は "Blogs"よりも聞こえやすい)。 どちらの方法も同様の機能を持ち、どちらを使用するかはコンテキストに依存します。たとえば、フロントエンドではむしろUsersモデルを使用しますが、管理者インターフェイスでは「finder」方法がより適切です。


0


両方を作ります。 User

getBlogs()はBlogs :: getBlogsByUserId($ idUser)を使用することができます。これは、ユーザーコンテキストにいるときは、Blogsメソッドに渡すためにユーザーのIDにアクセスできるためです。