Hello, Dziman, you wrote: D> Hello, Gattaka, you wrote: G>> D> While sounds as thoughtless . G>> Well I above resulted already the list of tables. :" Tables User (Id, Name, Property), Network_Node (Id, Name, Property), User_User (User1Id, User2Id), Network_Node (Node1Id, Node2Id), UserOnNode (NodeId, UserId) "G>> That here is thoughtless and as though you normalized? What list of tables at you would turn out? D> we begin with that that any roles D figure in your description> So, the administrator starts application. Selects the list of nodes, the right button - to assign a role. The role is assigned on nodes and also if on a node there are users (them can be a little, we assume that one) and if these users have communications among themselves - it is necessary to install communications between network points, only if these communications have not been forbidden by the administrator before if there are no prohibitions from other roles and these communications do not exist yet. Plus at communication can be the status, but it we lower - it is necessary to assign in only for certain statuses of communications. D> further, property at and the user-it that for an animal? For each property the column? They are intersected between user, node? How can 2 tables Network_Node? What is User_User, UserOnNode (and why here suddenly refused from underscore ?) ? And how communications are forbidden? And 100500 more questions and potential answers to them from which I drew an output that here is present (possibly out of place) and as consequence of attempt to achieve the data through . At first I did not enter a role, entered simply a flag property - consider that it and there are roles. That is property Property of type int and exhibiting there values is there is a role assignment on a node. Table User we simplify to User (Id, Name). that the second table is called not Network_Node, and Node_Node. User_User - the table of communications of users, I do not know and you that thought? Refused from underscore because it not important now. We after all assort a test situation. Now once again that is required to make. Since already many times corresponded. In table User (Id, Name) 70000 records. In table Network_Node (Id, Name, Property) 70000 records. In Table UserOnNode (NodeId, UserId) - 70000 records on one user on a node. In table User_User (User1Id, User2Id) - communications of users, all are connected to all is 70000*70000=4900000000 records. On each of records on 8 byte, i.e. approximately 36 gigabyte a label, disregarding indexes. Now in table Network_Node (Node1Id, Node2Id) - communications of nodes. We admit someone with someone already has been connected randomly 900000000 records any. We need to make: At nodes (any 35000) Network_Node property Property changes - business of the logician is that that it is necessary to find on these nodes and if they are connected - to add communications on nodes. Actually communication too has properties, but let's not complicate now. Here the task simply such as I above described now.