Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
En hoe zou ik dit aan moeten passen om het meer 'relationeel' te maken? Voor zo ver ik weet is dit al relationeel dmv de koppeltabel met een veel op veel relatie.johnkeates schreef op zaterdag 12 november 2011 @ 14:12:
Je zou een relationele opstelling kunnen maken... het is toch niet voor niets een relationele database
[ Voor 13% gewijzigd door ZpAz op 12-11-2011 14:13 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Ik denk dat het systeem van NMe de beste oplossing is voor wat ik momenteel zoek.
edit: Ik heb het even zitten bekijken, maar volgens mij gaat het maximaal één child diep? Wat als je meerdere parents (grootparents, overgrootparents) kan hebben?
edit2: Heb het al opgelost door recursie. Kan hier en daar nog wel wat beter.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
| $results = $this->fetchAll($this->select() ->order('parent') )->toArray(); $data = array(); //Put every role in their own part of the array foreach($results as $role) { $data[$role['id']] = $role; } //Get all parents recursivly foreach($results as &$role) { $role['parents'] = substr($this->_findParent($data, $role['id']), 0, - 1); } |
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| private function _findParent(&$roles, $roleId, $parents = '') { $currentRole = $roles[$roleId]; if($currentRole['parent'] != 0) { $parents .= $currentRole['parent'] . ','; $parents .= $this->_findParent($roles, $currentRole['parent']); return $parents; } else { return ''; } } |
resultaat:
1
2
3
4
5
6
7
8
9
10
11
| [1]=>
array(4) {
["id"]=>
int(1)
["name"]=>
string(5) "Admin"
["parent"]=>
int(2)
["parents"]=>
string(5) "2,3,4"
} |
[ Voor 78% gewijzigd door ZpAz op 12-11-2011 16:44 ]
Claude: "Domain patterns emerge from iteration, not generation." - Tweakers Time Machine Extension | Chrome : FF
'E's fighting in there!' he stuttered, grabbing the captain's arm.
'All by himself?' said the captain.
'No, with everyone!' shouted Nobby, hopping from one foot to the other.
Verwijderd
Driving a cadillac in a fool's parade.