MongoDB Data Structure
Tables used
- QuestionSets
- AnswerSets
- DSCEnquiries
- UserDetails
Structure of each table
QuestionSets
{
questionSetId: id type,
title: string,
description: string,
validFromDate: date,
validToDate: date,
extraFields: array [
],
isGroupChat: boolean,
stats: object {
'id': number
},
questionWeightageStats: object {
'id': number,
'total': number
},
departments:[],
elements: array [
elemType: string(question/questionGroup),
elemValue: { // elemType is question
questionId: number,
questionDesc: string,
answerType: string,
answerValues: array, // if answerType belongs to multiple choice selection the it becomes array of objects
isRequired: boolean,
isComments: boolean,
initAnswerValue: string,
placeHolder: string,
order: number,
links: array of objects [{
url: string,
label: string
}]
},
elemType: string(question/questionGroup),
elemValue: { // elemType is questionGroup
groupName: string,
groupId: number,
groupOrder: number,
groupItems: array of objects [{
questionId: number,
questionDesc: string,
answerType: string,
answerValues: array, // if answerType belongs to multiple choice selection the it becomes array of objects
isRequired: boolean,
isComments: boolean,
initAnswerValue: string,
placeHolder: string,
order: number,
links: array of objects [{
url: string,
label: string
}]
}]
}
],
createdOn: date,
createdBy: date,
lasUpdatedOn: date,
lastUpdatedBy: date,
status: 0,1,2,
productId: string,
publishedDate: date
}
AnswerSets
{
answerSetId: id,
questionSetId: id,
elements: array of objects [{
elemType: string(question/questionGroup),
elemValue: { //elemType is question
questionId: number,
answerValue: string/array,
comments: string
},
},
{
elemType: string(question/questionGroup),
elemValue: { //elemType is questionGroup
groupId: number,
groupItems: array of objects [{
questionId: number,
answerValue: string/array,
comments: string
}]
}],
createdOn: date,
createdBy: date,
lastUpdatedOn: date,
lastUpdatedBy: date,
status: number,
productId: string,
ansWeightageStats: object {
'id': number
}
}
DSCEnquiries
{
name: string,
city: string,
emailId: string,
mobileNo: string,
category: string,
comment: string,
productId: string,
createdOn: date,
createdBy: string,
lastUpdatedOn: date,
lastUpdatedBy: string,
status: number,
dscEnquiryId: id,
followUpComments: string
}
UserDetails
{
userCode: string,
userName: string,
userEmail: string,
createdOn: date,
createdBy: string,
lastUpdatedOn: date,
lastUpdatedBy: string,
productId: string
}