Schema's that reflects reality not the current specs. Flexibility is key. In my experience adding tables and migrating existing data to them is hard, adding columns easy. So spend extra time at the start on what tables there should be.
Spec:
Product has a supplier
[tables:product, supplier]
Reality:
Product can be bought from multiple suppliers
[table:product, supplier, product_supplier]