Estrutura BD ( Pedido, Itens e Statusl de cada Item no Pedido )

Caros Usuários,

Estou desenvolvendo um sistema de compras web e tenho algumas dúvidas quanto à estrutura do BD.

Tabela itensA :
cod INT
nome VARCHAR
preco DOUBLE

Tabela itensB :
cod INT
nome VARCHAR
preco DOUBLE

Tabela Pedidos
cod INT
cliente VARCHAR
cod_itensA VARCHAR ou ARRAY
cod_itensB VARCHAR ou ARRAY

Tabela StatusPedido
[list]
cod_pedido INT
cod_itensA VARCHAR ou ARRAY
cod_itensB VARCHAR ou ARRAY
status VARCHAR ou ARRAY
[/list]

Para os campos itensA e itensB na tabela Pedidos pensei em utilizar um varchar que seria uma coleção dos códigos dos itens separados por algo (1;3;4;5).
Daí faria um parsing para coletar cada item. O ideal neste caso seria trabalhar com o Array pois facilitaria a alteração dos campos?

Para a Tabela StatusPedido pensei em utilizar a mesma lógica acima.

Outra solução para a tabela StatusPedido :

Tabela StatusPedido
cod_pedido INT
cod_item INT
cod_item INT
status INT

Mas acho que ela traria problemas, pois não possui uma ordem/sequência, na mudança de status de itens com o mesmo código dentro do mesmo cod_pedido. Outrossim, essa tabela teria entradas demais.

Sugestões ou comentários?