¿Este diseño de base de datos es aplicable para tener subpreguntas?

Tengo el siguiente diseño de base de datos:

Employee Table: EmployeeID, Name, OrgCode
Department Table: OrgCode, DepartName
CompleteSurvey Table: ID, RespondantID, QuestionsAnswersID
Questions Table: QuestionID, Question
Answers Table: AnswerID, Answer
QuestionsAnswers Table: ID, QuestionID, AnswerID

Cada pregunta tiene diferentes opciones múltiples. Además de eso, estoy pensando en agregar subpreguntas debajo de la pregunta. La mayoría de

las preguntas tienen las mismas opciones, como (de acuerdo, en desacuerdo). Quiero escribir la consulta que muestra la pregunta incluyendo

sus subpreguntas con todas sus opciones y el número de participantes en cada opción, incluso si es cero.

No estoy seguro de si la tabla de preguntas me ayudará a insertar subpreguntas en cualquier pregunta. ¿Es aplicable ese diseño? ¿Que recomiendas?

preguntado el 22 de mayo de 12 a las 07:05

2 Respuestas

En su tabla de preguntas actual, no puede tener subpreguntas. Puede intentar tener una ID que represente subpreguntas (como la pregunta tiene ID 2, y luego la subpregunta tiene ID 2A o algo así), pero este diseño puede fallar y depende de su cálculo de ID, tampoco puede asegúrese del nivel de las subpreguntas.

Un mejor enfoque sería tener Dimensión padre-hijo para la relación autorreferencial. Usted puede tener:

Tabla de preguntas: QuestionID, Pregunta, ParentID

donde ParentID es el ID de alguna pregunta. Si es nulo, la pregunta no es la subpregunta de ninguna pregunta. También puede ver Relación Empleado-Gerente para relaciones recursivas, esto puede ayudarlo a comprender mejor su problema

contestado el 22 de mayo de 12 a las 07:05

Gracias por su ayuda y ¿podría darme un ejemplo de su enfoque? - user1395782

@user1395782, verifique el enlace para la relación del administrador de empleados, es más o menos lo mismo. - Habib

Bueno, no, no hay ningún lugar para especificar el padre de una subpregunta (o los hijos de una pregunta).

Las formas posibles serían: 1. Agregue una tabla de preguntas de la columna principal donde coloque la identificación de la pregunta principal. 2. Agregue una columna de subpreguntas a la tabla Preguntas y almacene los ID de las subpreguntas como array / json . Creo que esto podría dificultar las consultas. 3. Cree nuevas subpreguntas de tabla: con 2 columnas para cada subpregunta que cree.

contestado el 22 de mayo de 12 a las 07:05

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.