Elias,
I guess the immediate benefit is to avoid having two parallel systems of tagging. This would complicate overall design. Categories are essentially tags associated with a blog id and created by the blog owner. In other words they are only different in scope and control - concepts that can be implemented using namespaces. And well ... unlike tags categories are hierarchical. But who said that that tags couldn’t be hierarchical
In the longer run it will add flexibility to the way user categorize the content. In addition, by introducing tags at some point you will have to deal with closed taxonomy vs open-ended taxonomy issues. Having unified tagging system with namespaces may make the task a bit easier. Syndicating content that has categories and tags is another example (though it is a whole new discussion by itself).
On the implementation side, you are right that having prefixes in the database is not the best idea. There are multiple ways to implement namespaces. The simplest is to add a namespace field. Or you can create a namespace entity. It will complicate design a bit but give you ability to use namespaces on other things in Roller. After all, when you introduce namespaces there is no going back. We started with XML – a simple way to tag data. And look: now almost everything has a namespace.
Andrei
Elias Torres wrote:
Hi Andrei,
I hadn't really considered what you are mentioning, but we already have
some of that namespacing functionality. For example, tags are associated
with a website id in the table. When we do blog/website tags we will
have another table for that. Using the prefix style of tagging in the db
introduces another level of complexity in the code such as parsing
strings when doing queries. Could you explain more of the benefits that
you see in your approach?
-Elias