質問

私は、クライアントがフィードバック/調査環境のようなものでユーザーに表示されるフィールドを定義できるようにするアプリケーションに取り組んでいきます。たとえば、ピッツェリアにはお気に入りのトッピングを求めるフィールドがあり、バーにはお気に入りのビールのブランドがあります。

これらのフィールドは特定の顧客に依存しており、おそらく重複しないため、システムはこれらのフィールドを顧客が作成および変更できるようにする必要があります。同様の顧客のフィールドに基づいて、顧客に提案を提示する何らかの方法があれば理想的です。たとえば、2番目のピッツェリアにサインアップしている場合、管理ページでフィールドを定義して、同様の企業が以下の質問をすることを選択し、「サンプル」のリストを提示したと言うかもしれません。値。

これは、このテーブルの Entity-Attribute-Value(EAV)モデルの良い候補でしょうか?従来のリレーショナルモデルは、「user1」と呼ばれる多くのフィールドを含むため機能しません。など、これはもちろん非常に扱いにくいものです。

役に立ちましたか?

解決

いいえ、説明するシステムはEAVを必要としませんが、以下に表示されるものにはEAVモデルに共通の要素が含まれているように見える場合があります。

CLIENT(clientId、clientName)

SURVEY(surveyId、clientId)

RESPONDENT(respondentId、surveyId、respondentName、respondentEmail)

QUESTION(questionId、surveyId、questionText)例: 「お気に入りのトッピング」

OPTION(questionId、responseText)例: 「アンチョビ」、「ペパロニ」

RESPONSE(questionId、respondentId、responseText)

クライアントは多くの調査を作成できます。各調査には多くの質問を含めることができ、一部には推奨オプションがあります。回答者は調査に応答し、回答はそれぞれ回答として記録されます。 RESPONSE.responseTextは、オプションを選択したか、独自の応答を入力したかに応じて、特定のOPTION.responseTextと一致する場合と一致しない場合があります。

これは単なる例であり、このモデルには多くのバリエーションがあり、特定の要件に合わせて作成する必要があります。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top