In reply to Nick.

Saving arbitrary data fields related to a database row is a notoriously tricky problem with databases. You can either modify the database schema on the fly or use EAV (Entity-Attribute-Value) schema as WordPress does, which leads to a bloated database table.

MySQL 5.7 and onwards supports JSON data type which perhaps could be used instead but I’m not sure that WordPress is going to bump up their database requirements anytime soon.