Nikola Smolenski wrote:
How about a more generalised, more wiki solution?
Instead of "licensing" table, use "revisionlinks" table that would track what revision of a page was linking to what revision of another page.
rl_from: revision that is linking rl_from_page: page in which the revision was included rl_to: revision that is being linked to rl_to_page: page that is being linked to rl_type: template, category, article...
You could then use this to find what revision of a template was linked by what revision of a page. If used for a license template, this would effectively track licenses.
If this would be too database intensive, it could be used only for some pages (for example, only those with a specific magic word).
This is a complete overkill. And you can't even be sure that it is consistent. Page A includes {{GFDL}}, to which [[Image:Goatse]] is added (and reverted 5 seconds later). That would mean Page B (and thousands more) should have an entry in your table for Goatse. In fact, that won't appear. I see the benefit for marking some pages as "record anything that ever links here" but then you start getting requests for listing revisions older than the date on which the revision was tagged as such.
I'm not even sure why we would want to keep the licensing per revision in such case*. If it's added via templates/links, then the history can be seen in the page and also the licensing. You would only want to track which templates are licenses (that's what some toolserver projects already do). That would certainly be a much easier goal than what Dan proposed.
Even with licensing information in a separate table, when could keep them per page, and add dummy revisions where needed.