Estou fazendo um PDV e atualmente estou meio parado no processo de pedido devido aos atributos do produto.
A partir de agora, o banco de dados se parece com isto:
tbl_products
tbl_attributes (attr id, name, extra price)
tbl_sales ( where i store the time, total price etc)
tbl_salelines ( where i store what items have being order for a certain sale).
O problema é armazenar os atributos para um pedido de item. Não há uma quantidade fixa de atributos que um item pode ter. Poderia ir de 1 a 10-15, portanto, não acho que fazer algumas colunas no tbl_salelines com attr_1
attr_2
etc etc resolveria isso.
Como devo abordar isso?
Supondo que os atributos sejam para registros no tbl_salelines.
Se o relacionamento for tal que uma linha de vendas pode ter muitos atributos, adicione uma coluna para salesline_id na tabela tbl_attributes.
Se o relacionamento é tal que uma linha de vendas pode ter muitos atributos E um atributo pode ter muitas linhas de vendas, adicione uma tabela de interseção com attribute_id e salesline_id, onde ambos os id são chaves primárias em suas próprias tabelas e são chaves estrangeiras na tabela de interseção . Pode parecer assim...
No exemplo acima, a linha de vendas 800 tem dois atributos (azul e brilho no escuro). Da mesma forma, o atributo 45 está em duas linhas de vendas.