Option 1 is something you should never do: the data is meaningless without the application to interpret it.
Option 2 (as Certus recommends) is good.
Option 3 could also be good, if the type names are simple and not subject to frequent changes. But you would still need your separate TYPE table to validate the entries (via a foreign key) - or perhaps a CHECK constraint: otherwise you could end up with data like:
Code:
ProductID Type
--------- ----
1234 TV
1235 T.V.
1247 tv
1278 T V