Which database structure to choose for the catalog?

Want to make product catalog and I have a question:

How to choose a database structure for this?

If the goods can be of different types with different characteristics. For example, televisions and refrigerators.
The expected number of different types of goods in my case will be about 10-20. Each type will be 20-40 characteristics. The number of items of each type in the order of 10. Sellers of these goods is not more than 500.

Specifications rarely change, but for different types of products sets of features can be very different.

Studying the subject I realized that option 2 is approximately:

Option 1 (flexible). All the features in one table (EAV model).
Option 2. For each type of product to do their table with their sets of characteristics. In this case, it is necessary to produce a new table whenever a new type of product.

Saw the option of using JSON to store the characteristics in a single column.

Most likely, the task of designing a database model, and maybe there is a nice turnkey solution. Only I haven't found it yet.

I wonder how this problem is solved by adults, for example. Yandex.Market?
What is the structure of the database from them?

Can here to help ElasticSearch?


The project now uses laravel + mysql.
Maybe there is something ready for this bunch?
April 7th 20 at 15:29
2 answers
April 7th 20 at 15:31
Saw the option of using JSON to store the characteristics in a single column.
This option is very flexible. Version 5.7+ support for JSON. 8 ka is good. If properly indexed the required fields of the JSON, it works quickly.
April 7th 20 at 15:33
The first option in small shops. Second large like Olmert. Yandex market is likely monga or Cassandra because they are important bases to fall.

Find more questions by tags Database design