Мне нравятся таблицы «имя-значение» для них ... Возможно, было бы проще изменить дизайн, чтобы в нем отображалось «Продукт», а затем «Сведения о продукте» ... В сведениях о продукте содержатся идентификатор продукта, тип сведений и затем значение. Это позволит вам держать яблоки и мониторы в одной и той же таблице независимо от идентифицирующего атрибута (и оставить его открытым для последующего добавления другого продукта).
Подобный подход можно использовать в таблице счетов-фактур ... есть столбец «product_type», в котором указывается, какую таблицу нужно просматривать (apple или monitor), а затем «product_id», который ссылается на любой столбец ID в apple / монитор стол. Запросы к настройке, подобной этой, немного сложны и могут вынудить вас использовать динамический sql ... Я бы пошел по этому пути, только если у вас нет контроля над выполнением редизайна выше (и другие ответы, опубликованные здесь, ссылаются)
Первое решение предпочтительнее, я бы подумал ... измените дизайн этой базы данных на пару имя-значение с продуктами, и вы избавите себя от головной боли при написании ваших запросов позже.