Database structure for product attributes on orders
Assuming that the attributes are for records in the tbl_salelines.

If the relationship is such that one salesline can have many attributes, then add a column for salesline_id in the tbl_attributes table.

If the relationship is such that one salesline can have many attributes AND one attribute can have many saleslines, then add an intersect table with attribute_id and salesline_id, where both of these id's are primary keys in their own table and are foreign keys in the intersect table. It may look like this...

select * from tbl_salesline_i_attribute;

SALESLINE_ID  ATTRIBUTE_ID
------------  ------------
800           22
800           89
555           45
764           45


select * from tbl_salesline;

SALESLINE_ID  COLUMN
------------  ------------
800           foo
555           bar
764           foobar


select * from tbl_attribute;

ATTRIBUTE_ID  NAME               EXTRA_PRICE
------------  ------------       -------------
22            blue               3
89            glow-in-the-dark   3
45            extra large        10


In the example above, salesline 800 has two attributes on it (blue and glow-in-the-dark). Likewise, attribute 45 is on two saleslines.