Ir ao conteúdo
  • Cadastre-se

Relacionamento N:N


edersonneves

Posts recomendados

vou enumerar as perguntas para ficar mais claro:

tenho um relacionamento n:n onde numa ocorrencia poderá conter varios agentes ou infratores, e agentes ou infratores poderá ter varias ocorrencias.

relacionamento.jpg

com esses campos

BOL_OCORRENCIA (N_BOP, DATA_OC, HI_OC, HF_OC, ENDERECO_OC, COMPL_OC, BAIRRO_OC, CIDADE_OC, ESTADO_OC, ID_GUARN)

AGENTE_INFRATOR(ID_AG_INF, NOME_AG_INF, DT_NASCIMENTO_AG_INF, N_MAE_AG_INF, N_PAI_AG_INF, R_N_CASA_AG_INF, COMPL_AG_INF, BAIRRO_AG_INF, CIDADE_AG_INF, ESTADO_AG_INF, T_DOC_AG_INF, N_DOC_AG_INF, O_EXP_AG_INF, UF_AG_INF, COND_FIS_AGENTE_INF, ARM_OBJ_APREEN_AG_INF, PERT_AG_INF)

perguntas

1)tenho que criar uma terceira tabela?

se sim se esta correto dessa maneira

BOL_OCORRENCIA (N_BOP, DATA_OC, HI_OC, HF_OC, ENDERECO_OC, COMPL_OC, BAIRRO_OC, CIDADE_OC, ESTADO_OC, ID_GUARN)

AGENTE_INFRATOR(ID_AG_INF, NOME_AG_INF, DT_NASCIMENTO_AG_INF, N_MAE_AG_INF, N_PAI_AG_INF, R_N_CASA_AG_INF, COMPL_AG_INF, BAIRRO_AG_INF, CIDADE_AG_INF, ESTADO_AG_INF, T_DOC_AG_INF, N_DOC_AG_INF, O_EXP_AG_INF, UF_AG_INF, COND_FIS_AGENTE_INF, ARM_OBJ_APREEN_AG_INF, PERT_AG_INF)

PODE TER(N_BOP, ID_AG_INF, NOME_AG_INF);

N_BOP REFERENCIA BOL_OCORRENCIA

ID_AG_INF, NOME_AG_INF REFERENCIA AGENTE_INFRATOR

2) se estiver correto, se nessa nova tabela PODETER os campos serão chaves primarias, chaves estrangeiras ou serão os dois? se for os dois como é a forma de criação?

3) como vou fazer para inserir os dados dai nessa tabela PODETER? manualmente, ou tem alguma forma de inserir automatico, já que os dados já vão ser inserido nas tabelas BOL_OCORRENCIA, AGENTE_INFRATOR.

Link para o comentário
Compartilhar em outros sites

nao entendi nada dos seus campos mas o que eu sugiro e o seguinte... crie a tabela Ocorrencias (onde você vai listar as possiveis ocorrencias, como estacionar no meio fio) cria a tabela Motorista (onde você vai listar todos os motoristas) e crie a tabela multas onde você vai colocar a infração cometida e o infrator... sacou!?!??

obs: deixe de ser pao-duro e não abrevie o nome das colunas...

Link para o comentário
Compartilhar em outros sites

exemplo é aplicavel do mesmo jeito... porém você tem certeza que o relacionamento é de N:N com certeza!?!?? pois se você pensar... um boletim de ocorrencia pode ser feito por varios policiais!?!?? alem do mais... Agente e infrator nao sao a mesma entidade... eles se relacionam com a entidade "boletim de ocorrencia" de forma diferente... pra falar a verdade mesmo o seu esquema ta errado... você nao mencionou a entidade ocorrencia... pois um boletim pode ter varias ocorrencias (furto, agressao, bla bla bla) e uma ocorrencia pode estar em varios boletins...

Link para o comentário
Compartilhar em outros sites

na realidade agente e infrator fiz a mesma entidade por que o que diferencia seria somente a idade pois agente seria uma pessoa maior de 18 anos e infrator menor de 18 anos, com relação se e n para n eu tenho duvida tambem, pois entendo que em um boletim de ocorrencia poderá ter varios agentes até ai ta correto, agora com relação a agente_infrator poderá ter varias ocorrencias. Ai fica a minha duvida. mais nao seria de uma so vez por exemplo hoje faço de furto, ai ele e solto ai depois de alguns dias faço de homicidio. Nesse caso então seria um relacionamento 1 para n?

ai o esquema completo

relaciomaneto.jpg

Link para o comentário
Compartilhar em outros sites

Estou fazendo o meu trabalho de conclusao de curso da faculdade, sou policial militar, e resolvi fazer um sistema em php onde se possa inserir todos os dados de uma ocorrencia policial e gerar um relatorio para imprimir esses dados, por que aqui na minha cidade isso e feito manual, ou seja na caneta e minha ideia e implementar esse sistema onde o policial ao chegar com os dados da ocorrencia ao invés de usar a caneta usar o computador para gerar esse boletim de ocorrencia. então basicamente um boletim de ocorrencia contem vitima, solicitante, agente ou infrator, testemunhas, guarnição(policiais que irao confeccionar o boletim de ocorrencia), dados da ocorrencia, e paciente(ja que aqui a policia militar tambem fazer auxilio a doente) minha ideia então e criar esse banco de dados para que seja possivel fazer consultas posteriormente tipo um relatorio de estatisticas. nao sei si fui claro suficiente mais é isso.

Link para o comentário
Compartilhar em outros sites

foi claro o suficiente sim... devo avisa-lo que esse seu sistema vai ser complicado mas vamos la...

detalhe: PK=Primary Key; FK+Foreing Key;

tabela 1: Policial (PK ID_policial, nome, bla bla bla, FK ID_guarnição)

Tabela 2:TIPO_"Crimes/ocorrencias" (PK ID_CRIME, descrição)

Tabela 3: guarnição (PK ID_guarnição, descrição)

Tabela 4: Zona (PK ID_zona, descrição)

Tabela 4: Ocorrencia (PK ID_ocorrencia, FK ID_Guarnição, FK ID TIPO_CRIME, FK ZONA)

por enquanto é isso... da uma olhada e diz ae o que você acha...

Link para o comentário
Compartilhar em outros sites

eu criei essas tabelas

TABELA 1 GUARNIÇÃO (PK ID_GUARN, OPM, PREF_VTR, COMP_GUARN)

TABELA 2 BOL_OCORRENCIA (PK N_BOP, FK COD_OC, TIPO_OC, DATA_OC, HI_OC, HF_OC, ENDERECO_OC, COMPL_OC, BAIRRO_OC, CIDADE_OC, ESTADO_OC, FK ID_GUARN)

TABELA 3 AGENTE_INFRATOR (PK ID_AG_INF, NOME_AG_INF, DT_NASCIMENTO_AG_INF, N_MAE_AG_INF, N_PAI_AG_INF, R_N_CASA_AG_INF, COMPL_AG_INF, BAIRRO_AG_INF, CIDADE_AG_INF, ESTADO_AG_INF, T_DOC_AG_INF, N_DOC_AG_INF, O_EXP_AG_INF, UF_AG_INF, COND_FIS_AGENTE_INF, ARM_OBJ_APREEN_AG_INF, PERT_AG_INF, FK N_BOP)

TABELA 4 PACIENTE (PK ID_PAC, NOME_PAC, DT_NASCIMENTO_PAC, N_MAE_PAC, N_PAI_PAC, R_N_CASA_PAC, COMPL_PAC, BAIRRO_PAC, CIDADE_PAC, ESTADO_PAC, TEL_PAC, N_DOC_PAC, O_EXP_PAC, UF_PAC, FK N_BOP)

TABELA 5 SOLICITANTE (PK ID_SOL, NOME_SOL, DT_NASCIMENTO_SOL, N_MAE_SOL, N_PAI_SOL, R_N_CASA_SOL, COMPL_SOL, BAIRRO_SOL, CIDADE_SOL, ESTADO_SOL, TEL_SOL, T_DOC_SOL, N_DOC_SOL, O_EXP_SOL, UF_SOL, FK N_BOP)

TABELA 6 VÍTIMA (PK ID_VIT, NOME_VIT, DT_NASCIMENTO_VIT, N_MAE_VIT, N_PAI_VIT, R_N_CASA_VIT, COMPL_VIT, BAIRRO_VIT, CIDADE_VIT, ESTADO_VIT, TEL_VIT, T_DOC_VIT, N_DOC_VIT, O_EXP_VIT, UF_VIT, PERT_VIT, DEST_VIT, FK N_BOP);

TABELA 7TESTEMUNHA (PK ID_TEST, NOME_TEST, DT_NASCIMENTO_TEST, NOME_MAE_TEST, NOME_PAI_TEST, ENDERECO_TEST, COMPL_TEST, BAIRRO_TEST, CIDADE_TEST, ESTADO_TEST, TEL_TEST, TIPO_DOC_TEST, NUMERO_DOC_TEST, ORGAO_EXP_TEST, UF_TEST, FK N_BOP)

TABELA 8 OCORRENCIAS(PK ID_OC, NOME_OC)

o que você acha, ta legal ou tenho que fazer algumas alterações.

o que aquela tabela zona que voce criou iria armazenar?

Link para o comentário
Compartilhar em outros sites

zona seria tipo o local/regiao (leste,oste,centro,sul,bla bla bla) agora quanto a vitima/testemunha/paciente e que eu to pensando ainda... porque se for do jeito que você ta querendo vai ficar ocorrer redundancia de dados... teoricamente vitima e paciente sao a mesma entidade, a entidade "Assistidos"... tenho que pensar... amanha te ajudo mais...

Link para o comentário
Compartilhar em outros sites

vitima e paciente nao são a mesma entidade, porque vitima é a pessoa que e ofendida pelo agente ou infrator, ou seja em caso de crime tenho vitima, ja o paciente seria uma pessoa doente e que liga para o corpo de bombeiros esta ocupado ou nao pode atender, e acaba a PM dando esse auxilio encaminhando para o hospital. Conseguiu entender a diferença

Link para o comentário
Compartilhar em outros sites

eu entendi isso... o jogada de mestre aqui é o seguinte: ambos(paciente e vitima) podem ser perfeitamente entendidos como "assistidos", você vai diferenciar os dois pelo Tipo de Ocorrencia... sacou!?!? porque um PACIENTE nunca vai ter a ele relacionado num mesmo boletim "Assaltado a mão armada"... lol... deu pra sacar a jogadinha aqui?

Link para o comentário
Compartilhar em outros sites

desculpe demorar responder e por que trabalhei o dia inteiro, você esta correto realmente ou vou ter vitima ou vou ter paciente, da pra fazer uma unica tabela com os mesmo dados. La em cima quando voce disse que numa ocorrencia nao poderia ter varios crimes como roubo e homicidio na realidade pode acontecer sim, quando tiver um nexo de causalidade, por exemplo: numa ocorrencia de furto o agente ou infrator desacata o PM dai vou registrar um unico boletim de ocorrencia com os crimes de furto e desacato e vou narrar o que aconteceu no historico do boletim de ocorrencia. Ou seja nessa situação eu vou ter o seguinte: um boletim de ocorrencia poderá conter varios agentes ou infratores, e agente ou infratores será registrado uma ocorrencia, dai nessa ocorrencia eu vou poder ter varios crimes ou seja o seguinte: boletim de ocorrencia poderá conter varios crimes. entendeu

Link para o comentário
Compartilhar em outros sites

estou com dificuldade para criar uma trigger para incluir o valor no campo da chave estrangeira.

tenho duas tabelas sendo uma de registro de ocorrencia que possui o campo n_bop que é auto_increment, que é chave estrangeira na outra tabela que é paciente, gostaria que ao ser inserido esse campo n_bop, tambem fosse inserido na tabela paciente, eu utilizei uma trigger so que não dar certo ele insere os valores na chave estrangeira, e os demais campos que são nome_pac, dt_nascimento_pac....etc ficam sem valores. E quando excluo a trigger os valores sao inseridos normalmente so que a chave estrangeira e que fica sem valor na tabela paciente

a Trigger que criei foi essa

delimiter |

create trigger numero_bop after insert on `tbl_bol_ocorrencia`

for each row

begin

insert into `tbl_paciente` (n_bop) value (new.n_bop);

end

|

delimiter;

Tabela boletim de ocorrencia

n_bop

tipo_oc

data_oc

hi_oc

hf_oc

endereço_oc

compl_oc

bairro_oc

cidade_oc

estado_oc

historico_oc

observacao

id_guarn

Tabela paciente

d_pac

nome_pac

dt_nascimento_pac

sexo_pac

nome_mae_pac

nome_pai_pac

endereco_pac

compl_pac

bairro_pac

cidade_pac

estado_pac

tel_pac

tipo_doc_pac

numero_doc_pac

orgao_exp_pac

uf_pac

n_bop

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...

Ebook grátis: Aprenda a ler resistores e capacitores!

EBOOK GRÁTIS!

CLIQUE AQUI E BAIXE AGORA MESMO!