私は最近、出会い系サイトのデータベースの構築を手伝う任務を負っています。私はデータベースの概念にまったく慣れていませんが、問題が発生し、どうすればよいかわかりません。
注意してください、私は答えを探してみましたが、結果はどれも非常に明確ではありませんでした. また、1 対 1、1 対多、多対多の概念にも精通しています。
サイトのユーザーは、マッチングで探しているものを選択し、マッチングするための独自の情報も提供します。
各ユーザーには 8 つまたは 9 つの属性があります。これらの属性のうち 3 つは複数の値を持つことができます。私が説明できる最良の方法は、検索可能であるべきチェック ボックスのグループです (たとえば、ユーザーは社交的で、思いやりがあり、面白い性格を持つことができます)。
私が検索した結果、最も一般的な回答は次のとおりでした。
- 1 つのテーブルに各チェック ボックスのフィールドがある
- 各チェックボックスがテーブル内のレコードである多対多の関係を使用する
そして、ユーザーが探しているものを保存する必要がありますか?それとも、ユーザーが自分で実行するクエリのままにしておく必要がありますか?
ユーザーが探しているものを保存すると、同じ 8 ~ 9 個の属性を検索することになりますが、それらのすべてに複数の値が含まれる可能性があります (たとえば、性別は 1 つしかありませんが、どちらかの性別の人を探している可能性があります)。 )。
ユーザーが一致を求めているものを保存して、一致を自動的に提案できるようにしたいのですが、この構造を効率的な形式で作成する方法がまったくわかりません。
しかし、これらのうちどれが、または私が知らない 3 番目のソリューションが、Web サイトのデザインに最適かはわかりません。私は当初、各属性を複数の値を持つ BIT フィールドにし、各ビットをチェック ボックスにできると考えていましたが、その情報を効率的にクエリできるかどうかわからないことに気付きました。それを行う方法があれば、パフォーマンスの問題がない限り、その方法をお勧めします。
関係者全員がこのウェブサイトが人気になることを望んでいるので、非常に多くのユーザーにサービスを提供するための最適な構造を知りたい.
私の質問に対する回答が既に存在する場合は申し訳ありませんが、私の状況に合った回答が見つかりませんでした。また、検索エンジンで質問をどのように表現すればよいかわかりません。
あなたが私に与えることができるどんな助けにも感謝します.