How to deal with data repetition? I am unsure if this has been asked already. Tried searching but couldn't find one.
I'll explain with a close example (I call it the tags problem). Consider a basic CMS. A post can have many tags and should have at least one. A tag can have more than one words. A tag, when entered by the user, where they can either select from a list of tags and if tag a tag is not in the system, it has to created by the user.
Now the main problem is replication. There are thousands of tags. Many tags get repeated because of their definition of tag (Eg: let's say a post should have a tag called organisation, but the user adds institution as a tag.). Some of them are spelling mistakes or plurals (like Afforestation, Afforestations and multiple afforestation).
This leads to some unfavorable analytic reports which is one of the main output of the system.
Some solutions I can think of,

A separate responsible user needs to add a tag. Problem with this is, human intervention (small factor), the user has to wait till the tag get approved, and when the amount of tags increase, that user will be unable to track/remember which are new tags.

The user will add the tags, and then a person has to review those tags and edit/merge them. Eg: A user adds a tag called dams, when there is already a tag called dam. This new tag will be accepted by the system and other users can also view/use those. But then a responsible person then can review the tag and have the ability to update the tag in all places where its used to appropriate tag. Same problems as above except one is solved.


What is your approach? How to deal with this kind of replication?
Apology if this is the wrong stack-exchange.
Probably this question is more suitable for StackOverflow ;-)
Anyway: a combination of the two approaches is what I'd use: the User has a small research tool that displays the tags that contains the word (or a part of the word) User is inserting. If a tag already exists the User can select that tag. If a tag doesn't exist, the new tag will be manually approved by a &quot;superuser&quot;.
I think this looks like the same approach used in StackOverflow (and in all forums of Stack Exchange)