0

Ich werde an einer Anwendung arbeiten, die es unserem Kunden ermöglicht, Felder zu definieren, die den Benutzern in einer Art Feedback/Umfrageumgebung angezeigt werden. Zum Beispiel könnte eine Pizzeria ein Feld haben, das nach Ihrem bevorzugten Topping fragt, eine Bar könnte Ihre Lieblingsmarke von Bier haben.Wie erstellt man ein Schema, in dem es mehrere benutzerdefinierte Attribute pro Kunde geben kann?

Das System muss in der Lage sein, unsere Kunden in die Lage zu versetzen, diese Felder zu erstellen und zu ändern, da sie vom jeweiligen Kunden abhängig sind und wahrscheinlich nicht dupliziert werden. Es wäre ideal, wenn es eine Möglichkeit gäbe, dem Kunden Vorschläge zu machen, die auf ähnlichen Kundenfeldern basieren; Wenn wir zum Beispiel eine zweite Pizzeria haben, die auf ihrer Admin-Seite Felder definiert, könnte es sein, dass ähnliche Unternehmen die folgenden Fragen stellen und eine Liste von "Beispiel" -Werten präsentieren.

Wäre das ein guter Kandidat für das Entity-Attribute-Value (EAV) Modell für diese Tabelle? Ein traditionelles relationales Modell würde nicht funktionieren, weil es viele Felder namens "user1" und ähnliches beinhalten würde, was natürlich für irgendwas sehr unhandlich ist.

Antwort

1

Nein, das System Sie beschreiben keine EAV erfordern, obwohl das, was sehen Sie unten mit EAV-Modelle einige gemeinsame Elemente zu haben scheinen können:

CLIENT (clientId, client)

SURVEY (surveyId, clientId)

BEFRAGTE (respondentId, surveyId, respondentName, respondentEmail)

FRAGE (QuestionID, surveyId, questionText), zB "Lieblingstopping"

OPTION (questionId, responseText) z. "Sardellen", "pepperoni"

RESPONSE (QuestionID, respondentId, response)

A CLIENT viele Umfragen erstellen, von denen jeder viele Fragen haben, einige mit den vorgeschlagenen OPTIONS. Ein RESPONDENT antwortet auf eine ÜBERSICHT, und ihre Antworten werden jeweils als RESPONSE aufgezeichnet. RESPONSE.responseText kann einem gegebenen OPTION.responseText entsprechen oder auch nicht, abhängig davon, ob sie eine Option ausgewählt oder ihre eigene Antwort eingegeben haben.

Dies ist nur ein Beispiel. Es gibt viele Variationen dieses Modells, die Sie wahrscheinlich entsprechend Ihren spezifischen Anforderungen erstellen müssen.

Verwandte Themen