RailsとMongoidを使用しています。私はタグ付け機能を考え出そうとしています(各ユーザーが「お気に入り」のタグを持つことができるという点でstackoverflowに似ています)。
mongodbについて読んだデザイン記事から、「第4正規」の形で考えるのをやめる必要があることがわかりました。私は多対多のテーブルとと、そして別の多対多のテーブルととを考え続けてtag_id
いuser_id
ます。しかし、nosqlについて読むと、各ユーザーまたはアイテム内にタグ(タグまたは文字列の配列として)を埋め込む方がはるかに良いように思われます。tag_id
item_id
「tags」コレクションにはタグのリストがあり、アプリケーションはユーザーがお気に入りにタグを追加できるかどうかを制御します。
私はこれを行う方法を理解しようとしています。tag
モデルにを持っていてkey
、title
それらの配列をkeys
ユーザーモデルに格納するだけですか?この状況では、「リンク」または「埋め込み」の方が適していますか?foo-bar
のようなキーがあり、タイトルが。であるため、タグを取得する方法を考えていますFoo Bar
。ユーザーのタグを取得する必要がある場合は、配列をループして各タグモデルをフェッチし、タイトルを取得する必要がありますか?