Re: Acerca del rendimiento de una consulta

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/

In response to

Browse pgsql-es-ayuda by date

  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