問題タブ [denormalized]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
mysql - MySQL - 左結合 ... on ... LIKE
私は2つのテーブルを持っています
テーブル「ユーザー」では、各ユーザーが多数のスキルを持っています。それらは単一の列にあり、連結されています。テーブル「スキル」では、各スキルに関連付けられたラベルがあります。
一部のユーザーは、テーブル「スキル」で参照されなくなったスキルを持っていることがあります。
私がやりたい選択は、テーブルスキルで参照されなくなったスキルを含むテーブルユーザーのすべてのレコードをリストする必要があります。
私は次のようなことをしようとしていました:
ただし、ステートメントON USERS.skills = SKILLS.skill_idは私のニーズに適合しません。列 USERS.skills には、連結された skill_id が含まれています。
そのビットをON USERS.skills LIKE SKILLS.skill_idに置き換えようとしましたが、それでも気分が悪く、クエリは永遠に実行されます...
教えてください。
mongodb - MongoDB の非正規化
MongoDB を大きくしすぎる前に、非正規化を試みています。現在、Users と Rooms コレクションがあります。ユーザーはルームに参加でき、ルームはユーザーを保持します。ユーザーは時間の経過とともに数百万に近づく可能性があり、Rooms はおそらく数千に成長するでしょう。ルームには何千ものユーザーがいる可能性があります。ユーザー ドキュメント全体を各 Room ドキュメントに格納する必要がありますか?それとも ObjectID のみを格納する必要がありますか? または、Room ドキュメントの ObjectID を各ユーザー ドキュメントの下の配列に格納する必要がありますか? 結合が嫌われていることは知っていますが、これらは信じられないほどの速度で成長します。また、ルーム内のすべてのユーザーに対して複雑な計算を行う必要があります。関係は多対多です。現在、各ユーザーの ObjectID を使用して各部屋の配列を保存します。また、ユーザーごとに、ユーザーがいる各ルームの ObjectID を含む配列を保存します。これは理にかなっていますか?
私の状況では、オブジェクトの埋め込みを行うべきですか、それともオブジェクトの参照を行うべきですか?