Comunidad de diseño web y desarrollo en internet online

Duda al crear unique();

Citar            
MensajeEscrito el 19 Jun 2008 12:09 am
Tengo una tabla como sigue:

Código :

Tbl Doctos
Idusuario Numero Fechahora
  


Explicacion:
Idusuario (Que se enlaza con la tbl Usuarios)
Numero ( Numero unico del documento incrementable)
Fechahora (Fecha y hora en que se cargo el documento)

El problema que tengo es que el dato "numero" cada nuevo año lo deveria volver a 1, para que quede mas claro un ejemplo.-

Código :

Tbl Doctos
Idusuario   Numero   Fechahora
  2          1     2008-06-18 22:21:06
  1          1     2008-06-18 22:21:06
  2          2     2008-06-18 22:21:06
  2          3     2008-06-18 22:21:06
  1          2     2008-06-18 22:21:06
  2          1     2009-01-01 01:01:06


Como se ve en el ultimo dato pertenece al otro año, el problema lo tengo al intentar restringuir la DB con Unique(Numero) ya que al ingresar el dato 1 el proximo año se duplica y me toma error.-Tampoco puedo hacer un Unique(Numero,Fechahora) ya que haci siempre seria unico.-
No se si hay alguna manera de hacer un unique que solo tome el año de la fecha. O la unica solucion que tendria seria agregar un campo AÑO

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 19 Jun 2008 01:08 am
Numero no debe ser autoincrementable, ni ser clave primaria.

Agrega otro campo para que sea tu clave primaria.

saludos

Por Maikel

BOFH

5575 de clabLevel

22 tutoriales
5 articulos

Genero:Masculino   Team Cristalab

Claber de baja indefinida

firefox
Citar            
MensajeEscrito el 19 Jun 2008 01:44 pm
Si tengo una clave primaria que se llama idStatus. Lo que necesito es restringir que en un año no se ingresen dos veces el mismo numero por cada usuario, y por lo que tengo entendido eso se puede solo con unique.- Y para ello debo tomar el numero , el Year(fechahora), Id de usuario.-

Algo haci: UNIQUE (Idusuario ,Numero , Year(Fechahora)) , pero esto me figura con error.-

Ejemplos:

Código :

CORRECTO
Tbl Doctos
Iddocto  Idusuario   Numero   Fechahora
  1         1          1     2008-06-18 22:21:06
  2         1          2     2008-06-18 23:22:07

>
ERRONEO
Tbl Doctos
Iddocto  Idusuario   Numero   Fechahora
  1         1          1     2008-06-18 22:21:06
  2         1          1     2008-06-18 23:22:07


CORRECTO
Tbl Doctos
Iddocto  Idusuario   Numero   Fechahora
  1         2          1     2008-06-18 22:21:06
  2         1          1     2008-06-18 22:21:07 

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7
Citar            
MensajeEscrito el 19 Jun 2008 04:58 pm
Al crear los índices no puedes formatear la fecha. Tenes que agregar un campo a tu db de tipo year y crear el índice unico con idUsuario, Numero mas el nuevo campo Anio.


Saludos

Por Dano

BOFH

4273 de clabLevel

14 tutoriales
4 articulos
10 ejemplos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Lugar estratégico para vigilarte

firefox
Citar            
MensajeEscrito el 19 Jun 2008 05:05 pm
Ok, muchas gracias por tu respuesta Dano.-
Estube revizando varis tablas y me encontre que solo podia darle orden Asc o DEsc o agregar un (Numer) que no super para que servia.-

Por york3rs

Claber

561 de clabLevel

1 tutorial

Genero:Masculino  

LA___Chile

msie7

 

Cristalab BabyBlue v4 + V4 © 2011 Cristalab
Powered by ClabEngines v4, HTML5, love and ponies.