views:

1030

answers:

3

I'm doing a project in the field of multilevel marketing on .Net and SQL server. In the database it should save like a binary tree. How should i design a database?

+2  A: 
id | parentid | name
---------------------
 1 | null     | node1
 2 | 1        | node2
 3 | 1        | node3
ArsenMkrt
Exercise: Write a query that returns all decedents from node1.
Tom Lokhorst
you mean this? select * From tab where parentid = (select id from table where name = 'node1')
ArsenMkrt
That's hilarious :-) However, you probably should have pointed out a better alternative, like using nested sets model.
ChssPly76
To **Arsenmkrt** - no, that would be direct descendants. You were asked for all descendants :)
ChssPly76
+1  A: 

SQL Server 2008 has a built-in data-type called hierarchyid to store hierarchical information. Here are some pointers.

And of course you can do this as mentioned by arsenmkrt in databases other than sqlserver2008.

this. __curious_geek
+1  A: 

This has been asked and answered before.

Here's a pretty decent tutorial which explains why adjacency model proposed by arsenmkrt is less than ideal.

ChssPly76
+1 I didn't think about that before ;)
ArsenMkrt