2

「いいね」を含むアプリケーションを作成する必要があります。これは、一意の ID を持つユーザーが一意の ID持つアイテムを気に入ることができるのは1 回だけであることを意味します。アイテムを嫌いにすることはできません。私は小さなテーブルしか思いつきませんでしたuser_iditem_id挿入する前に、このユーザーがアイテムを気に入ったかどうかを確認する必要があります。多くの(〜100万)ユーザーと多くのアイテムが存在するため、これはタスクを達成するための最良の方法ではないように思われるため、テーブルはかなり大きくする必要があり、検索に影響しますそして挿入速度。これを行うための他のアプローチはありますか?または、私の方法がここで適切である場合、この情報をデータベースに保存する最良の方法は何ですか? 現在、MySQL データベースを使用していますが、ここでは NoSql を使用する方がよいでしょうか?

4

1 に答える 1

2

最初に行うことは、2つの列(組み合わせ)に「一意」制約を設定して、それらの組み合わせが一意になるようにすることです。MySQLがこれをサポートしているかどうかはわかりませんが、MSSQL Expressは確かにサポートしており、最大8 GBのデータを使用できるため、100万人のユーザーが制限に近づくことはありません。likerとlikedにカバーするインデックスを作成し、それを一意にする必要があります。80のパディングを使用すると、挿入が瞬時に行われるため、ルックアップも瞬時に行われます。これは関係性の問題であるため、リレーショナルデータベースは、速度と効率を高めるために、非リレーショナル(SQLなし)データベースをクリーム状にします。あなたは好きで好きな人が計算的であるかどうかについて言及しませんでした-私はそうではないと思います

于 2013-03-20T16:13:15.843 に答える