Question

Je vais travailler sur une application qui permet à notre client de définir des champs qui seront montrés aux utilisateurs dans une sorte d'environnement de rétroaction / sondage. Par exemple, une pizzeria peut avoir un champ demandant votre garniture préférée, un bar peut avoir votre marque de bière préférée.

Le système doit être en mesure de permettre à nos clients de créer et de modifier ces champs, car ils dépendent du client spécifique et ne seront probablement pas dupliqués. L'idéal serait de pouvoir présenter au client des suggestions basées sur des champs similaires. Par exemple, si nous avons une deuxième pizzeria inscrite, sur leur page d’administration pour définir des champs, cela peut indiquer que des entreprises similaires ont choisi de poser les questions suivantes et de présenter une liste de " échantillons " valeurs.

Serait-ce un bon candidat pour le modèle EAV (Entity-Attribute-Value) pour cette table? Un modèle relationnel traditionnel ne fonctionnerait pas car il impliquerait de nombreux champs appelés "utilisateur1". etc., ce qui est bien sûr très difficile à manier.

Était-ce utile?

La solution

Non, le système que vous décrivez ne nécessite pas de fichier EAV, bien que ce que vous voyez ci-dessous puisse sembler présenter certains éléments communs avec les modèles EAV:

CLIENT (clientId, clientName)

ENQUETE (surveyId, clientId)

RÉPONDANT (répondantId, sondageId, Nom du répondant, Email du répondant)

QUESTION (questionId, surveyId, questionText) par ex. "garniture favorite"

OPTION (questionId, responseText) p. ex. "anchois", "pepperoni"

RESPONSE (questionId, respondentId, responseText)

Un client peut créer plusieurs enquêtes, chacune pouvant comporter de nombreuses questions, certaines avec des options suggérées. Un répondant répond à une enquête et leurs réponses sont enregistrées comme une réponse. RESPONSE.responseText peut ou non correspondre à un OPTION.responseText donné, selon qu’ils ont sélectionné une option ou tapé leur propre réponse.

Ceci est juste un exemple, il existe de nombreuses variantes de ce modèle que vous devrez probablement faire pour répondre à vos besoins spécifiques.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top