Diseño de una base de datos ¿?

03/11/2004 - 19:54 por Javier P | Informe spam
Hola buenas. (Antes he publicado lo mismo pero debido al formato no se veia
nada).



Deseo realizar un programa en el que se guardan los resultados de unos
cuestionarios realizados a unos pacientes drogodependientes en una consulta
psiquiatra.



Me gustaría saber como puedo diseñar la base de datos.



Os explico, el cuestionario contiene lo siguiente (estas son solo algunas de
las preguntas):



-



1- Nombre y apellidos



2- Drogas por las que se le trata



3- Datos del entrevistador



4- Uso de sustancias: Esto es una tabla a rellenar donde vienen una lista de
drogas y ha de decir si se ha drogado o no con esa sustancia en el último
mes.



5- ¿Ha tenido una sobredosis en el último mes? Si es que si, numero de
veces.



6- En un día habitual de los que se inyectaba ¿Cuántas veces se inyectaba
ese día? Veces al día:



7- Salud: Tabla donde vienen una lista de problemas de salud y ha de decir
con qué frecuencia los ha sufrido (Nunca, Raras veces, A veces, A menudo,
Siempre)



8- ¿Durante cuánto tiempo ha vivido Ud. en la dirección actual? (Meses)



9- A lo largo del último mes ¿Ha tenido Ud. trabajo remunerado o pagado
(incluyendo trabajos ocasionales cobrando? Numero de dias.






Con estos datos creo que la base de datos ha de tener las siguientes tablas:



- Pacientes

- Drogas

- Entrevistadores

- ¿? Aquí es donde tengo la duda. No se si el resto de los datos del
formulario han de estar cada uno en un campo. Por ejemplo, creo que la
pregunta 7 (Salud), deberia de hacer una tabla con un campo llamado
IdProblema y otro Problema y ahí poner en registros todos los problemas, y
cada vez que se realiza un cuestionario se guardan los resultados en una
tabla intermedia (Pacientes-Problemas). ¿no?.

Pero, el resto de resultados los guardo en campos separados (como el numero
de veces que ha tenido una sobredosis)?



Les agradeceria mucho que me ayudaran. Muchas Gracias de antemano. Espero
que este lo suficientemente claro.
 

Leer las respuestas

#1 Paulino Padial
03/11/2004 - 21:00 | Informe spam
SI, los datos, que se vayan a repetir mucho, los metes en una tabla aparte y
lo que pones en las tablas es la PK de esa tabla.
Los datos como numero de meses, o numero de veces que se ha... o si se ha
mudado, esos peudes ponerlos tranquilamente.

Piensa que por ejemplo, en tu caso de los problemas, tienes un par, De
corazon, y de Pulmon, si se perdieran los registros de tus pacientes,
perderias los problemas, o si se cambiaran los registros. (ademas, al estar
todo en una tabla puedes hacer join con ella, entre clientes y problemas
alomejor, y sql server utilizaria indices para la busqueda , en vez de
buscar por un campo de tipo texto, en la tabla clientes, que tendria que
recorrerla entera para mostrar todos los problemas. De la otra forma la pk
qeu seria por ejemplo indice clustered) ( Aparte, el tema del espacio, no es
lo mismo guardar una cadena que okupa mas bytes, que guardar un int al
final te sale mas rentable tener muchos ints, que tener muchas cadenas,
nvarchar o como las definas :) )

Por todo esto, es mejor creo yo ;)



Ahora, yo pensaria si alomejor, por ejemplo segun has dicho estan

1) Los clientes
2) Drogas --> esta tabla suponiendo que quieras tener guardados muchos datos
referentes a las drogras, o que quieres guardar un listado de drogas...
3) Entrevistadores--> supongo que sera el medico
4)Problema -->diferentes tipos de problemas
Bien podias plantearte meter esto a ver que te parece

5)Entrevista --> aqui apuntaras las entrevistas que tiene un paciente, aqui
es donde pondras los datos de si se ha mudado etc.. y que un paciente podria
tener X entrevistas, y pongamos que ademas, una entrevista la tiene el 1994
y otra el 2000 han pasado muchos años, y para entonces, ya los datos de si
se a mudado en los ultimos meses, etc, serian edistintos.

Todo depende de como quieras hacerlo, piensa que la estructura y tu esquema
de BBDD es como reflejar la realidad ;) asi que lo adaptas, y si concretas
mas ,te puedo ayudar mas :)

Saludos Cordiales

Paulino Padial Lopez
Microsoft MCSD
Database Administrator
"Javier P" escribió en el mensaje
news:
Hola buenas. (Antes he publicado lo mismo pero debido al formato no se


veia
nada).



Deseo realizar un programa en el que se guardan los resultados de unos
cuestionarios realizados a unos pacientes drogodependientes en una


consulta
psiquiatra.



Me gustaría saber como puedo diseñar la base de datos.



Os explico, el cuestionario contiene lo siguiente (estas son solo algunas


de
las preguntas):



-



1- Nombre y apellidos



2- Drogas por las que se le trata



3- Datos del entrevistador



4- Uso de sustancias: Esto es una tabla a rellenar donde vienen una lista


de
drogas y ha de decir si se ha drogado o no con esa sustancia en el último
mes.



5- ¿Ha tenido una sobredosis en el último mes? Si es que si, numero de
veces.



6- En un día habitual de los que se inyectaba ¿Cuántas veces se inyectaba
ese día? Veces al día:



7- Salud: Tabla donde vienen una lista de problemas de salud y ha de decir
con qué frecuencia los ha sufrido (Nunca, Raras veces, A veces, A menudo,
Siempre)



8- ¿Durante cuánto tiempo ha vivido Ud. en la dirección actual? (Meses)



9- A lo largo del último mes ¿Ha tenido Ud. trabajo remunerado o pagado
(incluyendo trabajos ocasionales cobrando? Numero de dias.






Con estos datos creo que la base de datos ha de tener las siguientes


tablas:



- Pacientes

- Drogas

- Entrevistadores

- ¿? Aquí es donde tengo la duda. No se si el resto de los datos del
formulario han de estar cada uno en un campo. Por ejemplo, creo que la
pregunta 7 (Salud), deberia de hacer una tabla con un campo llamado
IdProblema y otro Problema y ahí poner en registros todos los problemas, y
cada vez que se realiza un cuestionario se guardan los resultados en una
tabla intermedia (Pacientes-Problemas). ¿no?.

Pero, el resto de resultados los guardo en campos separados (como el


numero
de veces que ha tenido una sobredosis)?



Les agradeceria mucho que me ayudaran. Muchas Gracias de antemano. Espero
que este lo suficientemente claro.


Preguntas similares