Me ocorreu agora que vc poderia tambem estar falando com relaçao a programaçao. e se referindo a tabelas como as classes. nessa casso a UML diz que um relacionamento desse tipo é uma composicao, pois os itens nao fazem sentido de existir sem a venda. Uma forma de relaciona-los é como a que vc fez. na classe venda colocar um Set (conjuto) de elementos da classe itens. Comumente tenho visto que tambem neste caso relaciona-se o elemento iten ao elemento venda atraves de um atributo em item. Nesse cenario teriamos algo como segue:
class Item
{
Produto Mercadoria; //indica que produto esta sendo vendido
int Quantidade; //indica em que quantidade esta sendo vendido
Venda VendaCorrente; //indica a venda a qual o item faz parte
//metodo para assossiar o item a venda
public assossiaVenda(Venda v)
{
this.Venda = v;
}
}
class Venda
{
ArrayList Itens;
Double ValorTotal;
Date DataVenda;
//metodo pra assossiar um item a venda
public addItem(Item mercadoria)
{
//usa o metodo de produto para assossiar a venda ao produto
mercadoria.assossiaVenda( this );
//assossia o produto a venda adicionando o na colecao de itens
this.Itens.add( mercadoria );
//incrementa o preco total da venda
this.ValorTotal += (mercadoria.Quantidade * mercadoria.Produto.Preco);
}
}
public class TestProg
{
public static void main(String args[])
{
//cria o objeto venda
Venda venda = new Venda();
venda.DataVenda = new Date();//data corrente
//vamos suporque so de criar os itens da venda ja temos que produto o item é.
Item item1 = new Item();
item.Quantidade = 5;
Item item2 = new Item();
item.Quantidade = 11;
Item item3 = new Item();
item.Quantidade = 4;
//Vamos assossiar o item a venda
venda.addItem( item1 );
venda.addItem( item2 );
venda.addItem( item3 );
}
}
bem claro que esse codigo é hipotético, eu achei que ficou meio enrrolado, mas é mais ou menos assim que funciona. hehehhe
Espero que ajude em alguma coisa…
- os campos nao foram encapsulados por questao de praticidade no exemplo.