desenho dinâmico da base de dados?

recebi uma cópia em papel de um formulário que é utilizado por um hospital para recolher informações sobre os seus doentes ! o formulário é dividido em seções e cada seção tem um monte de opções sim/não.

por exemplo, uma da seção é a seção de história que tem mais de 20 campos não relacionados sim/não:

Fumador ( Sim ou não)

Diabetes (sim ou não)

pulmão crónico (Sim ou não ) . . . . .

outra secção são os"dados dos testes de esforço" seção que tem perguntas como::

Teste Padrão ( Sim / não), em caso afirmativo, quais são os resultados (negativos ou positivos), se positivo (Qual é a extensão (baixa ou alta, ou intermédia)

...

pediram-me para desenhar uma base de dados, mostrar as tabelas de relações e a relação entre elas ! : S: S isto não se parece nada com o "banco de dados da classe estudantil" ou o "banco de dados da empresa de CD" que eu encontrei ! isto é justo..não sei..Dinâmico: s: s

Não faço ideia. como mesmo começar a projetar este banco de dados ou quais são as coisas que eu devo ler ou olhar ou praticar, a fim de projetar um banco de dados para tais dados!

POR FAVOR, AJUDEM-ME !!

Author: Community, 2010-12-07

6 answers

Veja estes dois exemplos:

 4
Author: Damir Sudarevic, 2017-05-23 12:04:14

Dê uma vista de olhos no esquema EAV (Entity Attribute Value) Database Design.

Não tem de O usar exclusivamente, só para os seus dados dinâmicos. Vai tornar essa parte das suas perguntas interessante? Sim. Mas compra uma incrível quantidade de flexibilidade. Btw, eu usei o esquema EAV para vários projetos EHR/EMR com sucesso.
 3
Author: Paul Sasik, 2010-12-07 18:53:55
Há duas maneiras básicas de fazer isto. Você terá uma mesa de pacientes em qualquer caso com o número de identificação do paciente, nome, e talvez informações de contato.

Então, você pode adicionar colunas a esta tabela (ou seja, coluna fumante que seria 1 Para sim ou 0 para não), e você pode adicionar um monte de colunas correspondentes a cada um dos atributos dos pacientes.

O outro (e melhor, IMHO) seria deixar a mesa de pacientes em paz, e depois adicionar um tabela de atributos. A tabela de atributos teria colunas de patientID, attributeName e attributeValue. Assim, para um fumante, você pegaria o ID do paciente e adicionaria uma linha na tabela de atributos de (id, "fumante", 1) e continuaria adicionando assim. Então você tem que escrever consultas para obter toda a informação sobre um determinado paciente a partir da tabela de atributos, mas isso é outro desafio...

 1
Author: Andrew, 2010-12-07 18:44:13
Veja os "padrões de Análise" de Martin Fowler. Ele faz um bom trabalho a explicar alguns modelos de objetos bonitos para os sistemas de saúde. Acho que também te pode dar algumas boas ideias sobre o modelo de dados.

Começa com os objectos, e o resto segue-se.

 1
Author: duffymo, 2010-12-07 18:58:22
Antes de prosseguir com o seu design numa base de dados relacional, tente imaginar se será fácil de manter. Na prática, muitos desses tipos de sistemas tentam quebrar o modelo relacional -- este é um caso bastante clássico onde você tem formas, cada forma tem campos, nenhum dos Campos está relacionado um com o outro, cada paciente tem cópias de formas e campos, e assim por diante. Preferia isto a um modelo relacional. Ver projectos como o Couch DB , que são bases de dados centradas em documentos em vez do modo que está habituado a ver com tabelas e esquemas e assim. Investiga CouchDB, Mnesia ou outra base de dados não relacional. Obter um livro sobre o assunto e descobriu a melhor maneira de projetar este tipo de sistemas de uma maneira idiomática.

Na prática, estes tipos de sistemas são como bases de dados de valor de atributos de entidade, excepto que podem ser bem pesquisadas numa indexação.

 0
Author: Juliet, 2010-12-07 18:57:51
O que queres dizer com "dinâmica"? Parece que você tem um conjunto de dados bastante padrão sobre os pacientes a serem armazenados. O meu conselho para vocês seria modelar esses dados: pacientes e seus atributos. Não tente modelar um questionário. Os meios usados para reunir esses dados são irrelevantes e o projeto do formulário não tem muito a ver com o projeto do banco de dados.
 0
Author: sqlvogel, 2010-12-08 00:44:31