B
Bob Gregory
Hi all,
I'm a newcomer to the .Net framework having worked in bog standard
ASP/SQL for far too long.
I have a massive project coming up, for which I will need to model a
tree structure of users. Users can access other entities in the
database depending on their position in the structure and the
properties of those entities.
As a simple example, each user is a member of a store. Stores are
members of storegroups, storegroups may be members of larger
storegroups and so on. Each store has 0-N widgets, those widgets may
or may not be exposed to other stores and storegroups.
Users at the top of a subtree can see any widgets, users, stores and
groups below them, but may be granted permissions on other objects or
subtrees. Users can also be explicitly denied permissions on an object
or subtree.
Are you keeping up at the back? There'll be a short quiz at the end.
I've built one of these things before, and a right pig of a system it
was too, using separate tables for transitive closure. If you're
interested in the method I worked from, check out
http://citeseer.ist.psu.edu/dong99maintaining.html
This was wonderfully fast for updates, but got painfully slow for the
kind of aggregated selects I need to do for this system.
My question, simply, is what options are available to me in the .Net
framework? I'd rather not have to kludge together a system in an RDBMS
because it gets unwieldy and this thing will need to Scale with a
purposeful capital.
I've looked briefly at directory services, which seem to offer the
right model for the user side of things, but I'd have to tie it into
SQL in such a fashion that a user can retrieve a list of all the
widgets exposed to his subordinate users which aren't explicitly
denied to him.
So, assuming that infrastructure is available by the bucket load
(servers, software, whatever is necessary) what is the best way to
knock something like this up?
-- FlinkyWistyPomm
Ps. I apologise for the vagaries, it's the usual All Your Code Are
Belong To Us situation.
I'm a newcomer to the .Net framework having worked in bog standard
ASP/SQL for far too long.
I have a massive project coming up, for which I will need to model a
tree structure of users. Users can access other entities in the
database depending on their position in the structure and the
properties of those entities.
As a simple example, each user is a member of a store. Stores are
members of storegroups, storegroups may be members of larger
storegroups and so on. Each store has 0-N widgets, those widgets may
or may not be exposed to other stores and storegroups.
Users at the top of a subtree can see any widgets, users, stores and
groups below them, but may be granted permissions on other objects or
subtrees. Users can also be explicitly denied permissions on an object
or subtree.
Are you keeping up at the back? There'll be a short quiz at the end.
I've built one of these things before, and a right pig of a system it
was too, using separate tables for transitive closure. If you're
interested in the method I worked from, check out
http://citeseer.ist.psu.edu/dong99maintaining.html
This was wonderfully fast for updates, but got painfully slow for the
kind of aggregated selects I need to do for this system.
My question, simply, is what options are available to me in the .Net
framework? I'd rather not have to kludge together a system in an RDBMS
because it gets unwieldy and this thing will need to Scale with a
purposeful capital.
I've looked briefly at directory services, which seem to offer the
right model for the user side of things, but I'd have to tie it into
SQL in such a fashion that a user can retrieve a list of all the
widgets exposed to his subordinate users which aren't explicitly
denied to him.
So, assuming that infrastructure is available by the bucket load
(servers, software, whatever is necessary) what is the best way to
knock something like this up?
-- FlinkyWistyPomm
Ps. I apologise for the vagaries, it's the usual All Your Code Are
Belong To Us situation.