webbapp に Node、Express、MongoDB (Mongoskin を使用) を使用しています。
新しいクライアント アカウントは、「会社名」、「担当者」、「電子メール」などの入力を必要とする Web フォームを通じて作成されます...
新しいクライアントを作成するとき、データベースに保存するときに一意でなければならないフィールドがいくつかあります。この入力は、 'Company'、'Slug'および'Email'です。
会社はユニークである必要があります。 スラッグは会社名から生成され、一意である必要があります。
元。'Café Rosegarden'と'Cafe Rosegarden'は 2 つの異なる会社名ですが、同じスラッグ 'cafe-rosegarden'を生成します。
Eメール。これは一意である必要があると思います...しかし、実際にはわかりません
現在、これらのフィールドに 3 つの単一の一意のインデックスがあります。
質問 1:インデックスは、フィールドの一意性を主張する唯一の (最善の) 方法ですか?
質問 2:複合インデックスを使用していますが、一意性はどのように処理されますか? たとえば、電子メールは 1 つの特定の会社名と組み合わせて一意である必要があると言えますか?