From: | Carolina Roman Salgado <rossyr(at)abulafia(dot)ciencias(dot)uchile(dot)cl> |
---|---|
To: | pgsql-es-ayuda(at)postgresql(dot)org |
Subject: | Re: Acerca del rendimiento de una consulta |
Date: | 2009-10-29 11:52:44 |
Message-ID: | 1256817164.1805.32.camel@mandragora.etsf.es |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-es-ayuda |
On Wed, 2009-10-28 at 20:41 -0300, Alvaro Herrera wrote:
> Carolina Román Salgado escribió:
> >
> > SELECT
> > area.title, area.brief_description, area.main_picture
> > FROM (SELECT DISTINCT ON (nid) * FROM node) n JOIN area USING (vid)
> > INNER JOIN node_access na ON na.nid = n.nid
> > WHERE (na.grant_view >= 1
> > AND ((na.gid = 0 AND na.realm = 'all')
> > OR (na.gid = 2 AND na.realm = 'term_access')
> > OR (na.gid = 6 AND na.realm = 'term_access'))
> > )
> > ORDER BY title;
>
> No se ve muy bonito, ¿por qué no implementas el control de acceso
> con una vista en vez de reescribir manualmente la consulta?
No había pensado en eso porque aún no sé nada de vistas.
Necesito que mi código sea capaz de leer cierto formulario web donde el
administrador define los permisos, para ser compatible con Drupal. Eso
es lo que hace la función de Drupal db_rewrite_sql: obtener la info de
permisos y traducir el resultado del formulario a esa cláusula WHERE.
Así yo puedo escribir un código que respete los permisos del sistema sin
realmente preocuparme de conocerlos: es suficiente usar
db_query(db_rewrite_sql($my_query)) en vez de db_query($my_query)
Los permisos dependen bastante del sistema que el admin escogió para
implementarlos, así que pueden ser bastante impredecibles. ¿Puedo hacer
algo así, dinámico, con una vista?
Por otro lado, uno de los códigos que estoy escribiendo, un sistema de
publicaciones, y que tiene este mismo problema será instalado además en
otra web que corre sobre mysql. No he querido pensar en soluciones más
complicadas porque recién estoy aprendiendo postgres y no tengo mucho
tiempo para además aprender a hacer las cosas en mysql.
--
Carolina Román Salgado http://nano-bio.ehu.es/~xavier/gallery
Registered Linux user 40938 http://counter.li.org/
From | Date | Subject | |
---|---|---|---|
Next Message | Ariel Delaloye | 2009-10-29 13:32:17 | Sincronización de datos |
Previous Message | Jaime Casanova | 2009-10-29 06:06:16 | PostgreSQL 8.5 alpha 2 ya esta disponible |