Dúvida sobre modelagem

6 respostas
fer.ferreira6

Galera, to com um problema de lógica pra fazer um lance muito simples.
Mas tá fo**.

To fazendo um app web básico que é o seguinte.

Cadastra-se usuários desse sistema
Cadastra-se chamados.

Esses chamados seriam uma espécie de mensagens, e na hora que for cadastrado esse chamado, deve escolher a quem enviar, no caso, pegar a lista de usuários, escolher alguns e enviar a eles.

Não to conseguindo mapear de forma inteligente o relacionamento entre chamado e usuário.
Não sei se uso um pra muitos, muitos pra muitos.

Alguém dá uma idéia?

Valeu, brigadão.
Boa Tarde.

6 Respostas

rafaduka

eu usaria 1 para muitos

(pois, a mensagem, pode ser enviada para N usuários)

posso estar errado

fer.ferreira6

Mais ou menos seguindo essa base?

create table mensagem(
    id integer auto_increment,
    titulo varchar(255) not null,
    descricao text not null,
    usuario_id integer not null,
    foreign key(usuario_id) references usuario(id),
    primary key(id)
);

create table usuario(
    id integer auto_increment,
    nome varchar(150) not null,
    email varchar(150) not null,
    foto text not null,
    primary key(id)
);
ssh

se você utilizar UML acho que isso vai ficar mais claro p/ você.

no UML não existe mtos para mtos. você cria uma classe no meio.

Um usuário pode criar muitos chamados. e um chamado pode pertencer a vários usuários.

crie uma tabela no meio por exemplo: Chamados_Usuario essa tabela recebe o id do usuario e id do chamado.

acredito que fique melhor p/ manipulação.

me corrijam se estiver errado.

rafaduka

pensando melhor, crie uma tabela associativa:

create table mensagem(  
    id integer auto_increment,  
    titulo varchar(255) not null,  
    descricao text not null,  
    usuario_id integer not null,  
    foreign key(usuario_id) references usuario(id),  
    primary key(id)  
   );  

    create table usuario(  
    id integer auto_increment,  
    nome varchar(150) not null,  
    email varchar(150) not null,  
    foto text not null,  
    primary key(id)  
   );

    create table mensagem_usuario (
    id_mensagem not null,
    id_usuario not null
    );
fer.ferreira6

Acho que vai ficar bacana mesmo usando isso que vocês falaram.
Legal, valeu pela ajuda.

rafaduka

Sendo assim muda o relacionamento, pois 1 mensagem pode ser enviada para N usuários e 1 usuários pode receber N mensagens, portanto, (N:N) por isso a necessidade da tabela associativa.

Criado 3 de abril de 2012
Ultima resposta 3 de abr. de 2012
Respostas 6
Participantes 3