Мне сложно советовать, потому что я в точности не знаю как "сделано у других". Но если Ваш проект нацелен на самообразование, то, думаю, Вас стоит сначала действительно попрактиковаться на классической реляционной базе данных и лишь потом переходить на какие-то более экзотические варианты. Двигаться нужно от простого к сложному и только тогда, когда простого уже не хватает. По большому счету, реляционная база данных с ее жесткой структурой и задаваемыми Вами строгими ограничениями - Ваши друзья, они ведь стараются Ваши данные сохранить от разрушения.
По поводу того, чтобы выводить разные виды товаров в разные таблицы. У этого решения есть и хорошие и плохие стороны. Главная хорошая сторона заключается в том, что Вы можете полностью создать каждую такую таблицу с учетом всей специфики каждого вида товаров. Но плохая сторона заключается, что в этом случае Вы должны будете позаботиться и о том, чтобы каждая такая таблица и обрабатывалась отдельно. Потому что если уж таблицы по дизайну разные, то и методы обработки должны быть разными.
Может быть, оптимальным было бы решение, когда бы Вы хорошо продумали какие параметры товаров Вам понадобятся для поиска и сделали бы их отдельными индексируемыми столбцами общей таблицы товаров. Для некоторых видов товаров эти поля были бы пустыми. А другие параметры, которые просто описывают товар, но не предназначены для поиска, Вы могли бы объединить и хранить в таком виде в одном столбце. И распаковывать по надобности, когда их нужно выдать пользователю. Туда бы Вы могли класть всякую всячину, абсолютно не заботясь о том, что для какого-то товара эта всячина может измениться. Главное, в виде пар значений хранить, чтобы знать что есть что - захотелось Вам в описание товара добавить, что крокодильчики у него серобурмалиновые, а не фиолетовые, как у всех - так и пишете - Крокодильчики => серобурмалиновые.
С другой стороны, Вы не всегда знаете какую категорию товаров Вы захотите добавить следующей. А корежить и раздувать и "разряжать" общую таблицу товаров идея не очень хорошая. С этой точки зрения - общности, Ваша идея разных таблиц для разных товаров может быть очень хороша. Ведь Вам, разработав саму основу - проработав различную обработку для различных таблиц товаров, при добавлении нового вида товаров понадобится только создать таблицу и дать для нее подходящий именно для нее обработчик. Заботиться о том, как работают другие таблицы Вам не придется.
Ну, например - выбираем мы категорию товаров ноутбуки - и ищем по параметрам, которые характерны только для ноутбуков.