On Tue, 05 Aug 2008 17:22:05 -0500, you wrote:

>Jeffrey Becker wrote:
>> I have a table 'SiteMap' defined as :
>> 
>> Create Table SiteMap
>> (
>>      NodeID blob not null PRIMARY KEY,
>>      Title text NOT NULL UNIQUE,
>>      Url text NOT NULL
>> );
>> 
>> I'd like to index on the node's parent value as defined by the
>> expression ancestor(NodeID,1).  'ancestor' being a user defined
>> function.
>> However sqlite doesnt permit indicies on expressions, only columns.
>> Why is this? More importantly what's my best bet on achieveing
>> something similar?
>
>Create Table SiteMap
>(
>       NodeID blob not null PRIMARY KEY,
>       ParentID blob not null,
>       Title text NOT NULL UNIQUE,
>       Url text NOT NULL
>);
>
>Then index on (ParentID, NodeID) or something like that.
>
>-Steve

Additionally: NodeID and ParentID shouldn't be blobs.
Integer is the most suitable type for IDs.

http://article.gmane.org/gmane.comp.db.sqlite.general/17286/match=managing+trees+database
and
http://www.sitepoint.com/article/hierarchical-data-database
may help on maintaining trees in a relational database.

Or search the net on "Joe Celko" and "nested sets".
-- 
  (  Kees Nuyt
  )
c[_]
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to