Diagrama de classes X MER

4 respostas
A

Estava fazendo a modelagem de um projeto onde precisava fazer tanto o diagrama de classes (UML) quanto o MER (Modelo Entidade Relacionamento)

e surgiu a dúvida:

Digamos que eu tenha um relacionamento um para muitos: um cinema possui varias salas. cada sala pertence a um unico cinema

então no MER fiz assim (estou ocultando alguns atributos que não vem ao caso):

CINEMA
id_cinema

SALA
id_sala
id_cinema

porém no diagrama de classes fiz o contrário

CINEMA
Sala

SALA

Conclusão é que no diagrama estou dizendo que o cinema possui sala (faz sentido, não?),
porém no MER eu fiz sala possui cinema (afinal eu vou precisar repetir ids de um mesmo cinema para a várias salas).

Isso está correto? fazer a modelagem dessa forma funcionaria? com bom desempenho?

Obrigado desde já.

4 Respostas

D

Diagrama de classes pode abstrair algumas coisas.
No caso, eu sugiro que use List, afinal, um cinema possui uma lista de salas.

R

Você pode criar um atributo List<Sala> salas; em Cinema.
Dai no diagrama de classes você vai ter que um cinema possui varia salas.

E em Sala no Diagrama de Classes você coloca que Sala tem um cinema, afinal, uma sala pertence a um cinema.

W

O relacionamento vai depender do seu modelo de negócio, sua implementação está correta colocando uma lista de sala no cinema, mais como o romarcio disse vc também pode colocar na sala o cinema o que é mais usado.

A

Pensei mais sobre o assunto e acho que cheguei onde eu queria

Ok pessoal, então usarei uma lista de salas, faz sentido.

Quanto a colocar no diagrama de classes a sala como um atributo de cinema e o cinema como atributo de me parece reduntante.

Acredito que falhei ao afirmar que com esse modelo de MER (o id_cinema dentro de SALA) significa que a SALA tem CINEMA, pois afinal o que resultaria dessa tabela ( tabela sala com id_cinema) seria algo assim:

id_sala id_cinema
1 1
2 1
3 1
4 2
5 2

Dessa forma, fica mais claro observar que na verdade: cada cinema possui várias salas!
…e não o contrário, como pode nos enganar o modelo:

SALA
id_cinema

Conclusão que tirei: nunca tentar decifrar os relacionamentos do MER desse modo que eu fiz como se fosse uma classe de java;

Se alguém quiser adicionar ou corrigir algo, por favor o faça.

Obrigado a todos!

Criado 1 de março de 2012
Ultima resposta 1 de mar. de 2012
Respostas 4
Participantes 4