It will work. But I recommend changing the names, datatypes and indexing: create table options_table ( grouping VARCHAR(20) NOT NULL, -- keep it short key VARCHAR(20) UNSIGNED NOT NULL, -- keep it short description VARCHAR(999) NOT NULL, PRIMARY KEY(type, value) -- probably the only index needed ) ENGINE=InnoDB; I did something like that once in 30 years. I used `description` to make some web pages more user-friendly. One table (and 2-column JOIN) versus many tables (and 1-column JOINs) -- very little performance difference. See also `ENUM` and `SET` and `FIND_IN_SET()`.