[development] One-to-one tables considered harmful

Earl Miles merlin at logrus.com
Tue Jun 5 17:36:37 UTC 2007

David Strauss wrote:
> Earl Miles wrote:
>> At one point we had a 'field' op to nodeapi that let modules add fields
>> to the node table. I would like to see this restored. Then we could
>> justify never ever having a 1::1 relationship table for 'node'. This was
>> taken out when the node_revisions table was added.
> Content types adding tables with 1::1 relationships to {node_revisions}
> aren't a problem unless we use fields from the content type's table in
> WHERE or ORDER BY criteria. I'm not aware of that happening anywhere in
> core.

Ahh, but I bring this up for things like gsitemap or things that add flags to 
nodes that will get queried by that module. Possibly with queries similar to 
the tracker query. Some of these may be important.

If we had a 'kosher', acceptable way for a module to add fields to the node 
table, and comment.module in core used that as a shining example, then any and 
all of my objections to this on principle would vanish, melt, disappear and be 
gone. And we'd get useful functionality, to boot.

I'd quickly turn out a 'node flags' module that let the administrator create 
set arbitrary flags on a module, control who can set them, and offer those 
flags up to Views, if the 'field' op for nodeapi were restored.

> That said, the current relationship between {node} and {node_revisions}
> isn't too bad. We tend to not put WHERE or ORDER BY criteria on
> {node_revisions} when joining.

Fair enough, that's a moot point then.

More information about the development mailing list