cake-php
[Arriba] [Todas las Listas]

Producción de Árbol del orden

To: cake-php@xxxxxxxxxxxxxxxx
Subject: Producción de Árbol del orden
From: Jeremy Burns <jeremyburns@xxxxxxxxxxxxxxx>
Date: Tue, 11 Jun 2013 08:02:01 -0700 (PDT)
Delivery-date: Tue, 11 Jun 2013 11:02:19 -0400
Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=googlegroups.com; s=20120806; h=x-beenthere:date:from:to:message-id:subject:mime-version :x-original-sender:reply-to:precedence:mailing-list:list-id :x-google-group-id:list-post:list-help:list-archive:sender :list-subscribe:list-unsubscribe:content-type; bh=K1MjDe7Rh4WairLKtkmqaV8qG1lv/kclJeLSJ45vT/o=; b=JirIZN9nsE15WEFwjnOhNV3KTcauLfIt1YKbuSYW2yk3iBdXit0eKGkWmxxgpdxaf4 QpgraIrqKOr5yLxa04el6aGr2/BWE6JC3OdFCG8DIoNEy2RsI6L32ul1IPZPbw/VBe8Q vNt2ZuHTFilN5e1BOBtPi9BvmU5m8vTs/SK4EIyEioqrOs5cNrNPY/UwgHgSCOXtoEZd rQMjIkj4n5VuiFc9XWRLgbwdE/lx1tKHxT18TeN2hUSdq2FEf/ODuKQXGn058Tp8KlKo Lohy5OR7tY3AHEgf4+YQ+iV0mgE3gXEGEZ8atHY15GWCZfvbWv4Z9dB6cBMzcbgaHhkK P6EA==
Envelope-to: traductor@xxxxxxxxxxx
List-archive: <http://groups.google.com/group/cake-php?hl=en>
List-help: <http://groups.google.com/support/?hl=en>, <mailto:cake-php+help@googlegroups.com>
List-id: <cake-php.googlegroups.com>
List-post: <http://groups.google.com/group/cake-php/post?hl=en>, <mailto:cake-php@googlegroups.com>
List-subscribe: <http://groups.google.com/group/cake-php/subscribe?hl=en>, <mailto:cake-php+subscribe@googlegroups.com>
List-unsubscribe: <http://groups.google.com/group/cake-php/subscribe?hl=en>, <mailto:googlegroups-manage+1003367825667+unsubscribe@googlegroups.com>
Mailing-list: list cake-php@xxxxxxxxxxxxxxxx; contact cake-php+owners@xxxxxxxxxxxxxxxx
Reply-to: cake-php@xxxxxxxxxxxxxxxx
Sender: cake-php@xxxxxxxxxxxxxxxx
Tengo un *multi-*tenancy sitio que incluye algunas mesas que utilizan el comportamiento 
de Árbol. Por *multi-*tenancy significo que varios clientes diferentes todos almacenan 
su dato en el mismo *database y pueden sólo acceso y dirigir su 
dato propio.

Por ejemplo, cada cliente almacena sus departamentos en el 'departamentos' 
mesa. Cada departamento tiene un cliente_*id campo, también cuando padre_*id, *lft y *rght. 
Cada cliente tendrá uno o nivel más superior departamentos (dónde 
padre_*id es *null y cliente_*id = $*theirClientId).

Mi objetivo es para producir informes donde los departamentos son ordenados por nombre 
de departamento del padre -> nombre de departamento del niño abajo #por el árbol a cualquier 
nivel donde los nodos en cada nivel son también ordenado. *Ideally Yo  Árbol 
de usuario->*reorder cuándo los departamentos son añadió o actualizado así que son almacenados en 
el orden correcto y yo pueden sencillamente clase por *lft en encontrar, pero estoy encontrando que 
el rendimiento es pobre. Esto es en parte porque si un nivel superior nuevo el departamento 
es añadió necesito a *reorder donde padre_*id es *null, y que impactos todos 
departamentos de nivel superiores no justo aquellos perteneciendo a este cliente. Aquello puede 
provocar mucho *cascading actualiza.

Es allí una manera a tampoco:
1) Árbol de uso->*reorder pero pase en criterios extras (padre_*id = *null Y cliente_*id 
= 123) o 2)
Ordena el dato una vez es sido encontrado - allí abundancia de los ejemplos que utilizan el 
*lft columna pero que no es corregir si el campo de título no es también ordenado 
correctamente cuándo almacenado.

Si la respuesta es 1 (cuál suena correcto) todavía puede provocar un actualizar del 
árbol completo si un nivel superior nuevo el departamento es añadió aquello empieza con 'Un', 
cuando todas las filas  subsiguientes tendrán que ser movidas abajo.

Qué la aproximación recomendada?

-- 
Gustarnos en *FaceBook *https://www.facebook.com/*CakePHP
nos Encuentra en *Twitter *http://*twitter.*com/*CakePHP

--- 
Recibiste este mensaje porque eres *subscribed al *Google Grupos "*CakePHP" grupo.
A *unsubscribe de este grupo y la parón que recibe *emails de él, enviar un *email a pastel-*php+unsubscribe@xxxxxxxxxxxxxxxx.
A correo a este grupo, envía *email a pastel-php@xxxxxxxxxxxxxxxx.
Visita este grupo en *http://grupos.*google.*com/Pastel/de grupo-*php?*hl=*en.
Para más opciones, visita *https://grupos.*google.*com/Los Grupos/optan_fuera.


I've got a multi-tenancy site that includes some tables that use the Tree 
behaviour. By multi-tenancy I mean that several different clients all store 
their data in the same database and they can only access and manage their 
own data.

For example, each client stores their departments in the 'departments' 
table. Each department has a client_id field, as well as parent_id, lft and 
rght. Each client will have one or more top level departments (where 
parent_id is null and client_id = $theirClientId).

My aim is to produce reports where the departments are ordered by parent 
department name -> child department name down through the tree to whatever 
level where the nodes at each level are also sorted. Ideally I'd user 
Tree->reorder when departments are added or updated so they are stored in 
the right order and I can simply sort by lft on find, but I'm finding that 
performance is poor. This is partly because if a new top level department 
is added I need to reorder where parent_id is null, and that impacts all 
top level departments not just those belonging to this client. That can 
trigger a lot of cascading updates.

Is there a way to either:
1) use Tree->reorder but pass in extra criteria (parent_id = null AND 
client_id = 123) or
2) Sort the data once it's been found - there plenty of examples using the 
lft column but that isn't correct if the title field isn't also sorted 
correctly when stored.

If the answer is 1 (which sounds right) it can still trigger an update of 
the complete tree if a new top level department is added that begins with 
'A', as all subsequent rows will have to be moved down.

What's the recommended approach?

-- 
Like Us on FaceBook https://www.facebook.com/CakePHP
Find us on Twitter http://twitter.com/CakePHP

--- 
You received this message because you are subscribed to the Google Groups "CakePHP" group.
To unsubscribe from this group and stop receiving emails from it, send an email to cake-php+unsubscribe@xxxxxxxxxxxxxxxx.
To post to this group, send email to cake-php@xxxxxxxxxxxxxxxx.
Visit this group at http://groups.google.com/group/cake-php?hl=en.
For more options, visit https://groups.google.com/groups/opt_out.


<Anterior por Tema] Tema Actual [Siguiente por Tema>