It sounds like you are confusing storage of data with business rules.
Yes, primary keys are important. They allow you to uniquely identify a row. This allows you to update a specific row. It also allows you to create foreign keys to other tables.
If you give items away (or discount items for multiple item purchases) then store that within your table where you store information about the order and how much that customer owes you, not within your "materials" table.
"Dan" <com> wrote in message news:phx.gbl... ...