Opa cara, tudo bem?
O que se pode fazer, e na vida real se faz assim mesmo, é criar uma cópia do produto como item do pedido de venda.
Como assim?
Imagine que você fez a compra de um produto. Depois da sua compra, o produto foi deletado do banco de dados. O que vai acontecer com o seu pedido? O item vai sumir?
Isso não pode acontecer.
O mesmo pode acontecer com as características.
Então, no momento da compra, você deve criar uma cópia dos dados do produto pertinentes ao pedido. Para as características, uma opção é salvar o nome e o valor, ao invés do Id.
Então como ficaria a tabela item_venda:
- tb_item_venda(id_produto, nome, preco_compra_unidade, preco_compra_total, id_venda, quantidade, caracteristica_nome, caracteristica_valor, url_imagem)
Dica: acredito que o relacionamento correto para caracaterísticas e produtos seja de m para n. O preço e a imagem poderiam ficar na tabela do relacionamento
- tb_produto_caracteristica_valor(id_produto, id_caracteristica, id_valor, preco, imagem_url)
Outra dica que digo de coração: te aconselho a estudar português e a ler mais. Leia de tudo, especialmente literatura clássica e ficção, algo que goste. Vai te ajudar bastante a melhorar a sua comunicação e seu aprendizado, além de outras soft skills.
Abraço, espero ter te ajudado. Continue estudando!