I'm designing a database structure for a system at which an entity can have a dynamic set of user-defined meta attributes. The meta fields (e.g.: popularity, conversion etc.) and skill values (int, boolean or string) are dynamically entered by admins.

At the end of the data population, the admin will be able to create queries to filter out the entities based on meta values. 

Normally, I would follow wordpress's DB structure of having meta table of the following structure.

```
Meta => id, entitiy_id, meta_key, meta_data_type, meta_value

```

However, I'm concerned about the performance and the query-ability of the data since I expect it to be more intensive. Not to mention that I'll be using mysql for the DBMS. 

Please advice if there is a better practice than this. If not, is there any pitfalls that I should take note of before I develop this structure.