Hola Claudio,
 
Veo que toda en la referencia que haces al tema en cuestion hablas de tablas,
columnas, etc, en otras palabras, lenguaje de base de datos. No estoy seguro si
tu consulta es como hacer una actualizacion sobre la tabla (una cuestion de base
de datos) o de como encontrar una solucion mas general a este problema.
 
Asumiendo que estamos hablando de la segunda opcion y de que tenes una clase
Usuario en tu modelo, recomiendo lo siguiente (escrito de memoria):
 
class Usuario
{
 
    private DateTime approvalDate;
    public void ApproveOn( DateTime approvalDate )
    {
        if ( approvalDate > DateTime.Now )
            throw new ArgumentOutOfRangeException( "approvalDate", approvalDate
);
        this.approvalDate = approvalDate;
    }
 
    public bool IsApproved
    {
        get
        {
            return DateTime.Now.Substract( approvalDate ) <=
GetApprovalInterval();
        }
    }
 
}
 
Donde la funcion GetApprovalInterval() deberia buscar desde el lugar conveniente
el intervalo de aprobacion maximo, posiblemente desde un archivo de
configuracion o desde la base de datos.
 
En la base de datos solo grabas la fecha de la ultima aprobacion. Este enfoque
mueve la logica al modelo y la saca desde la  base de datos. esto puede ser
bueno o no, incluso puede ser posible o no.
 
Todo depende del contexto. Por un lado, te abstrae de la base de datos (puede
soportar funciones o no). Pero si otras aplicaciones acceden directamente a la
base de datos (sin pasar por el modelo) puede que no te quede otra alternativa.
 
Saludos
 
Carlos


  _____  

From: [email protected] [mailto:[EMAIL PROTECTED] On Behalf Of Claudio M.
E. Bastos Iorio
Sent: Miércoles, 18 de Julio de 2007 10:32 a.m.
To: [email protected]
Subject: [puntonet] mejor forma para hacer esto?



Tengo una tabla de usuarios con una columa [isapproved], que toma valores 0-1 en
base a una aprobación manual via CMS. En base a [isapproved] el usuario accede o
no a ciertas funcionalidades. Hasta ahí todo ok. 

Ahora necesito hacer expirar esa condición en “x” tiempo, digamos un año, la
fecha en que debe expirar es un valor en otra columna. Se que podría chequear si
hay un usuario “para expirar” ese día cada vez que me logueo en el CMS, pero no
lo veo muy “elegante”. Que otras forma habría de hacer esto? Sugerencias?

Desde ya muchas gracias.

 

________________________________________________________

Claudio M. E. Bastos Iorio

 <http://www.blumer.com.ar/> http://www.blumer.com.ar

 

 

Responder a