Un utente è tenuto a compilare un questionario - rispondendo alle domande in varie categorie.
A seconda delle risposte dell'utente, all'utente verrà presentato un numero di raccomandazioni.
- Una raccomandazione potrebbe avere una relazione 1: 1 con la domanda posta
- È possibile formulare una raccomandazione sulla base di una o di un'altra domanda a cui è stata data risposta. (O, O)
- Alcune raccomandazioni saranno formulate sulla base delle risposte fornite da 3 di 9 domande. per esempio. la raccomandazione 1 verrà visualizzata quando 3 da una serie di domande riceve una risposta positiva.
Sto cercando assistenza con la creazione di una ricerca generica in modo tale che, in base alle risposte dell'utente, posso fornire le raccomandazioni.
Le domande possono essere aggiunte e rimosse, allo stesso modo le raccomandazioni possono essere aggiunte e rimosse. Devo mantenere il sistema abbastanza generico ed estensibile.
Schema finora:
CREATE TABLE 'categories' (
'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'category' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
'description' text COLLATE utf8_unicode_ci NOT NULL,
'order' int(11) NOT NULL DEFAULT '10',
'created_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'updated_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'deleted_at' timestamp NULL DEFAULT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE 'questions' (
'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'category_id' int(10) unsigned NOT NULL,
'question' text COLLATE utf8_unicode_ci NOT NULL,
'order' int(11) NOT NULL DEFAULT '10',
'created_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'updated_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'deleted_at' timestamp NULL DEFAULT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDB AUTO_INCREMENT=35 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
CREATE TABLE 'recommendations' (
'id' int(10) unsigned NOT NULL AUTO_INCREMENT,
'recommendation' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
'code' varchar(255) COLLATE utf8_unicode_ci NOT NULL,
'created_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'updated_at' timestamp NOT NULL DEFAULT '0000-00-00 00:00:00',
'deleted_at' timestamp NULL DEFAULT NULL,
PRIMARY KEY ('id')
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;