ユーザー、製品、および製品のリストの 3 つの主要なエンティティがあります。ユーザーは製品をお気に入りとしてマークできます。商品リストにはお気に入りの商品のみ設定できます。
例 1:牛乳とパンをお気に入りとしてマークします。そしてマークした牛乳を「息子用」のリストに追加。また、お気に入りの製品を追加する前に、空の製品リストを作成することもできます。
例 2:「太陽のために」リストを作成し、牛乳とパンをお気に入りとしてマークし、マークした牛乳を「太陽のために」リストに追加します。
お気に入りの製品は、製品リストがなくても存在できます。商品リストは、お気に入りの商品がなくても存在できます。同じ製品を異なるリストに設定できます。
主な問題:製品リストをユーザーとリンクする必要があります。お気に入りの商品がある場合は、それらを介してリンクすることができます。ただし、製品を持っていない場合は、ユーザーに直接リンクする必要があります。
考えられる解決策: 4 つのテーブルを作成します: ユーザー、製品、製品リスト、および接続テーブルの製品リスト - 製品。ユーザーごとの商品リストに「お気に入り」リストを作成します。ただし、この製品が別のリストに追加されるたびに、「お気に入り」リストに製品を重複して追加する必要があるため、正規化のルールにも違反します。