Think of it this way - treat a product as a unique document type (or maybe an element, depending on how you need to reuse the data). Editors create content nodes, then the front-end can render those as needed. Don't worry about editors creating tables, just let them input data then build the views to suit.