2016-08-05 9 views
0

IMDB.comサイトロジックとまったく同じウェブサイトを作成します。laravel 5.2でManyToManyリレーションまたはmovieIdの配列を作成しますか?

私はのテーブルを持っており、moviesテーブルから多くの映画を持つことができます。今私はどの方法が最良の選択であるか知りたいですか?

  1. listsmoviesテーブル間ManyToMany関係を作成し、両方のテーブルからIDSを格納するために、ピボットテーブルを作成します。

  2. という名前のフィールドを作成し、このフィールドにすべてのムービーIDを配列として格納し、 '、'で区切ります。

あなたはどのような方法で選択すればよいのですか?

+1

リストテーブルの目的は何ですか? – jonju

+0

リストテーブルには、ウォッチリストとカスタムリストが含まれており、ユーザーが作成してムービーを各リストに追加できます。 imdbとまったく同じ –

答えて

0

関係:ManyToManyへ行きましょう。 Eloquentにはすでにこの関係を処理するメカニズムがあり、コードを書く労力を軽減します。ピボットテーブルを使用して適切な関係を定義することで、CRUD操作の処理がさらに簡単になります。

2番目の方法では、Eloquentを使用してこれを処理することはできません。また、これはテーブル間の関係を作成する標準的な方法ではありません。あなたは手作業でカンマで区切られたムービーの名前を準備する必要があります。

+0

あなたの答えをありがとう。私はこのアプローチのスケーラビリティに関して少し心配しています。数千のユーザーがいて、各ユーザーに複数のリストがあり、各リストには何百ものmovieIdが含まれているとします。道のりに問題はありませんか? –

+0

それはどのように扱うかによって異なります。 Eloquentはすでにそれについても認識しています。 2番目のアプローチでは、その数のレコードに対して手動で何かを行うことになります。ループが繰り返されなければならない場合、反復する時間は何回ですか? – jonju

関連する問題