I suggest to use the simplest possible approach for a start (this may be storing all tags comma seperated in a single column) and optimizing it in a seperate branch. This merge is about removing the templates from the main list, not getting a high performance tag storage.
I'm by no means a database guy, so i've no clue how to solve the tag storing problem. But a quick Google search (http:// lmgtfy. com/?q= storing+ tags+in+ relational+ database) reveals tons of howtos and insights.
I suggest to use the simplest possible approach for a start (this may be storing all tags comma seperated in a single column) and optimizing it in a seperate branch. This merge is about removing the templates from the main list, not getting a high performance tag storage.