Sure large companies can work with one table.
using a company column and a where clause in your SQL you can return only the records that belong to certain company from the one table
you could create the one table, then a view for each company, the view would make it seam as if there where a separate table when in actual fact is only one.
multiple tables that all do the same job is not an efficient way of structuring your database.
if you must go that way, then the wishlist is going take considerable hand coding to accomplish.
you would need to store the itemID, userID and company in the wish list table, and create 20 recordsets to return the items for each company