Je travaille sur un site où un utilisateur peut sélectionner certaines dates qui leur sont applicables, par exemple la date 1, Date 2, Date 3, etc.solution la plus élégante pour le problème humungous
Chaque jour aura certaines questions Si le client a coché 'Date 1' pour indiquer que cette date s'applique à lui, il verra alors une série de zones de texte l'interroger sur la date 1 et comment elle s'applique à eux. Idem pour toutes les autres dates.
Date 1 et 2 et plusieurs questions, mais les dates restantes ont juste 1 question. Ces dates et leurs réponses seront ensuite utilisées pour créer des rappels personnalisés pour le client et envoyés à lui.
Je voudrais aussi un design qui le rend simple (ou aussi simple que possible) pour ajouter des dates et des champs supplémentaires.
Ma question est, quelle est la meilleure façon de stocker toutes les dates et leurs réponses liées à l'utilisateur dans la base de données? Je pensais que dans le tableau user
, j'ai boolean
colonnes à partir de Date 1 - Dernière date (de toute évidence, ils ne sont pas réellement nommés date 1, date 2, etc.). Si la colonne pour Date 1 est définie sur 0, cela signifie que le client ne l'a pas coché, et si c'est 1, alors cela signifie qu'il l'a fait et il a répondu aux questions pour cela.
En ce qui concerne le stockage réel des dates, je considère ces deux options:
1) 1 table pour chaque date, avec des colonnes pour chaque question posée à cette date et une colonne user_id
. Donc, dans Date_1
tableau, je vais avoir des colonnes comme Q1_name
, Q2_name
et les réponses aux questions que l'utilisateur a donné.
Mais je veux quelque chose de plus élégant parce que 1), il sera difficile d'aller chercher toutes les réponses de l'utilisateur lors du calcul de quelle information. s'applique à eux lors de l'envoi des emails personnalisés. 2) Certaines dates ont seulement 1 question, donc ce sera moche de créer une table à part entière pour eux.
2) Une table user_answer
, avec les colonnes:
user_id,date_name,question_name,answer_val
2 semble jusqu'à présent le plus élégant, mais il devrait y avoir une meilleure solution. Des pensées?
merci pour une belle réponse, juste ce que je cherchais –
pas de problème mon ami :) – flesh