Modelagem de dados

Pessoal estou criando um projeto em java web (JSF) e estou com uma grade dúvida
que é o seguinte: no meu projeto vai ter um cadastro de proposta para licitações,
para isso eu necessito cadastrar os campos:

id_proposta;
nome cliente;
data;
item(n°);
produto;
marca;
qtd;
etc;

até ai tudo bem, o problema é que pode existir mais de um item em cada proposta,
e em cada item temos que colocar novamente (marca, qtd, etc) pois cada item
especifica um produto diferente na proposta.

o que eu faço???

antes de qualquer resposta… valeu galera!!!

Você precisa de 2 tabelas (ou 2 objetos pensando em OO).

Um objeto será o objeto Licitação e um outro objeto Item, porém dentro do objeto Licitação, você vai ter um atributo do tipo java.util.List que contém uma Lista de Itens, assim, um objeto Licitação pode ter vários Itens.

Aconselho você estudar o relacionamento OneToMany para entender melhor como modelar/implementar isso.

na classe eu entendi, mas é no banco que eu estou com muita dúvida
como será modelado dessa forma???

Por isso eu disse para estudar sobre OneToMany (e consequentemente ManyToOne) :lol:

Dependendo da sua estratégica (se for unidirecional ou bidirecional) a modelagem do banco de dados será diferente.

Supondo que seja unidirecional, ou seja, apenas as licitações possam ver os Itens (e não o contrário), ai simplesmente você cria um campo na tabela de ITEMS que armazena o código da LICITAÇÃO (e também faz uma constraints de foreign_key nesse atributo), assim, todos os ITENS pertencentes a uma mesma Licitação, terão o mesmo valor nesse campo (ID da licitação).

Não sei se ficou claro, mas aconselho fortemente estudar sobre OneToMany e ManyToOne. Certamente as coisas vão ficar mais claras para você.

Se você puder usar um framework ORM, como o Hibernate ou a especificação JPA, esse trabalho de relacionamento se torna bem simples.

Espero ter ajudado

Primeiro passo, você imagina as entidades que irá tratar no seu sistema, como o jair falou, como se fossem objetos, (exemplo: produtos, clientes, propostas),
depois você pensa nos atributos de cadas um, exemplo: cliente tem id, nome e endereço,
passo três: como estas entidades se relacionam, existem alguns tipos de relacionamento: 1x1, 1xn, mxn, 0xn (zero quando é opcional),
definido isto você vai decidir pela implementação do relacionamento, que pode ser o código (id) de uma entidade na relação de atributos da outra (exemplo tabela de propostas possui o id do cliente), ou uma tabela para o relacionamento (geralmente quando o tipo é mxn), esta tabela de relacionamento vai ter o id de duas ou mais entidades.
resumindo bastante o conceito é isto. Acho que você poderia procurar uma apostila ou mesmo um livro sobre o assunto para se aprofundar.

Tava dando uma olhada em ManyToOne e entendi como será feita a relação,
no meu caso, colocando somente o id_proposta no item(como mencionado), pode ser
colocada varios itens em uma mesma proposta.

Valeu galera!!