MYSQL - Using simple inventory number convention as Primary Key
You can use the one-column approach for simplicity.  However, what happens when a code is changed?  Will you have to update all related tables to have the new code?

Using an integer ID is the best choice for a primary key because it's small and efficient (strings have to be reduced/hashed to an integer before they are used as an index).  Also, updating a code will happen in only one place and be reflected in all related tables automatically.

So I would recommend your second option for the sake of speed and to avoid a cascading update.