I decided to implement tagging on my video library. My first solution was to use one table for the tags. Containing the videoid and tagname. When I loaded in 1,000,000 test tags this became slow to generate my tag cloud data. My new solution was to split up the tags into two tables. One containing distinct tags and the other joining videos to them. I will also show some things I came by when extracting my tag data.
Tables
My tables for tagging are as follows:
Tags = {
ID,
TagName
}
VideoTags = {
ID,
TagID,
VideoID
}