What is the proper way of designing database with dynamic fields in MySQL + PHP?
Its possible to use type JSON

https://dev.mysql.com/doc/refman/8.0/en/json.html

this negates the need for a table of custom fields, however if you need to do join/look ups on this data, it will be difficult.