Frage

tl; dr Ist mein Schema okay?

Meine Lösung für dieses Jahr ist etwas Neues zu lernen, und ich habe entschieden, etwas über nicht-rel Datenbanken zu lernen, das heißt Mongo. Im Moment arbeite ich auf eine einfache Anwendung, die Anwendungen als Datenbank-Engine mongo.

Die Anwendung arbeite ich an ist ein einfacher Fragebogen App: admin schafft Frage, (angemeldet) Benutzer sie beantwortet. Also: User hat viele Antwort auf die Anfrage gehört. Was ist das am besten geeignete Schema für eine solche Anwendung wäre? habe ich das nächste Schema selbst (pseudo), aber ich frage mich, wenn Sie irgendwelche Hinweise / Tipps haben die Lösung dafür.

users [
    {
        # some required fields to authenticate the user
        email: j.doe@example.com,
        password: ...
        etc.

        # next fields are this users answers to a question
        # the key is the question's id, it's value the answer
        1: 'John',
        2: 'Doe',
    },
]

questions [
    { # no 1 (I know id's in mongo aren't numbered this way,
      # this is just for the sake of readability.
        question: What is your first name?,
        type: open,
        required: true,
    },
    { # no 2
        question: What is your last name?,
        type: open,
        required: false,
    },
    # and so on.
]
War es hilfreich?

Lösung

Ich würde Antworten innerhalb Fragen Sammlung verschieben:

{_id: 1, 
 question: "?", 
 type: "open", 
 required: true, 
 answered: [
   {email: "j.doe@example.com", answer: "John"},
   {email: "bob@example.com", answer: "Bob"},
 ]
}

Auch dynamische Felder mit (wie Antwort-IDs) werden Sie indizieren unmöglich machen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top