Mysql Progettazione di database - lista di controllo / applicazione quiz
-
10-10-2019 - |
Domanda
Al momento sto 'imparando' CodeIgniter, PHP e MySQL tutti in una volta, come ho cercare di creare un tipo di "lista di controllo" del sito web, dove i visitatori iscriversi, creare un progetto e si richiede un elenco di domande, dove devono alcuni campi di input
Sono un po 'bloccato sulla mia DB MySQL-design ... (completamente bloccato in realtà)
che cosa si tratta di è ...
1 progetto può avere uno di 3 tipi. "Tipo A / B / C"
Digitare un ha 20 domande
Tipo b = digitare un + 15 domande
Tipo c = tipo b + 15 domande ...
Quindi, in pratica mi piacerebbe poter dire facilmente, Domanda A è tipo A e / o Tipo B e non C .
Ora, non so se quello che sto facendo è corretto, ma sto facendo fondamentalmente due tabelle e quindi impostando una relazione tra loro "molti a molti" (credo?) n: m in mySQL Workbench
ProjectType
id
ProjectTypeName
Questions
ID
Title etc...
ProjectType_has_Questions
ProjectType_id
Questions_id
Inoltre, ogni domanda "può, non deve" avere 3 risultati (fatti attuali) e 3 correzioni (miglioramento dei risultati).
Non so se questo sta facendo alcun senso per nessuno qui, sicuro come l'inferno mi baffeling: - /
tutti i pensieri?
ps:. Ho cercato di allegare un'immagine, ma visto che questa è la mia prima volta con il sito non è stato permesso
Soluzione
ti risponde a quello che ho capito qui. Avevamo qualche altra domanda che ho commentato nella sua interrogazione.
Se i tipi di progetto sarà sempre aggregati - che è, tipo C è sempre un superset di tipo B, che è sempre un superset di tipo A - poi per le domande si può solo specificare il più grande progetto che quella particolare domanda saranno inclusi in. Dire, se viene visualizzato un messaggio in tipi a e B, quindi designare la domanda di tipo B. Se apparirà in tutti e tre i tipi, designare come Tipo C.
Si sta commettendo te stesso quando si esegue questa operazione, però. Un modo più flessibile per farlo sarebbe quello di avere un tavolo di collegamento che include l'ID domanda e il tipo di progetto ID. Ogni domanda può avere una o più voci in questa tabella.