Best way to "normalize" a metadata

Dear all,

I have an ElggObject with a metadata value that I'd like to keep as normalized as possible.

I'd like to keep it a bit like "tags", where users can freely add new tags, but autocomplete suggest existing tags as you type, and if you get one you like, you use it rather than creating a new one.

So the meta data field is currently using Tokenizing Autocomplete.

With this construct, the problem is feeding the autocomplete, where I fetch all metadata by name.

I do not think it is the best, most efficient way to do this, especially when thousands of ElggObjects with the meta data are expected.

Is there a nettre way to manage this "normalization" (in database terms)?

Shall I, on the side, create another ElggObject for that specific metadata? Keep it in an external table?

Please advise.

Thank you.