Ver Mensaje Individual
  #2 (permalink)  
Antiguo 26/03/2008, 00:08
Avatar de kaninox
kaninox
 
Fecha de Ingreso: septiembre-2005
Ubicación: In my House
Mensajes: 3.597
Antigüedad: 18 años, 7 meses
Puntos: 49
Re: Como hago una bitácora?

para eso amigo es solo saber hacer un UPDATE un INSERT y un SELECT lo demas es saber armar bien su tabla de base de datos para hacer las consultas pertinentes, eso que quiere se hace con los llamados flags o banderas que en realidad cambian un valor digamos un cero o uno a su contraparte...

le voy a poner un idea...

tiene su tabla de usuarios ok...

USUARIOS
id --- id (autoincrement)
nombre ----- id (varchar, doble llave la primera segun tengo entendido permite las consultas sean mas rapidas al ser autoincremnet......lo he probado y es haci....)
passwd (varchar)
permisos (esto puede venir de otra tabla, varchar)
fecha_creacion --- (datetime si es posible)
email ....etc.... los datos que necesite esto es un ejemplo

PERMISOS
id ..... id (autoincrement)
tipo_permiso (varchar)

DATOS

tipo_dato ---- id (autoincrement)
dato --- (varchar)
usuario_ing (varchar_)
fecha_ing ---datetime
flag_update (int 1---- valor por defecto ---- 0 si quiere lo ingresa al iniciar)
fecha_update (datetime----0000-00-00)
usuario_update (varchar_)
flag_delete (int 1---- valor por defecto ---- 0 si quiere lo ingresa al iniciar)
fecha_delete (datetime----0000-00-00)
usuario_delete (varchar_)
visibilidad (int 1 ya le explico este campo...)



teniendo su tabla procedemos a explicar, tiene su tabla permisos cierto, esto no es relevante ahora pero si quiere asignarle un permiso a cada usuario deberia tener una tabla donde se especifica que permiso le asignara, usuario, administrador, vendedor etc... segun este permiso podra mas adelante hacer ver el programa completo o parte de este y etc....

teniendo esto puede crear usuarios, si no va a manejar permisos entonces omita el paso de arriba....ya lo otro imporatnte para que su sistema algo mas seguro encripte las passwords en sha1 recomendado... despues solo las compara....

una ves teniendo sus usuarios con sus permisos por decir algo.....

ingresa datos a su tabla DATOS
cuando ingresa un dato.... por ejemplo zapatilla este le generara en la tabla de arriba en su id tipo autoincrement un 1 --- seguido por zapatilla que ocupara la casilla dato...
en usuario_ing ingresara el usuario que ingresa el dato, y en fecha_ing la fecha del ingreso que deberia tomarla al momento... con date ("Y-m-d H:i:s")...
en el campo fecha_update ingresa el valor 0000-00-00 00:00:00
en flag_update importante ingresa el valor 0 "cero" que significa incativo para ud...
en usuario_update no ingresamos nada.... queda blanco...
(esto por que nadie a actualizado nada....ok)
sigue los mismos procedimientos para los delete.....

ahora en el campo visible o visibilidad ingresa el valor 1 que significa que esta activo....

Ahora bien si se fija puede consultar....
cuando se ingreso la zapatilla y por quien cierto fecha e incluso hora....
si pregunta si ha sido actualizada y sale en este caso cero....? pues no hay datos solo
pregunta a los flags.... o baderitas... espero se entienda la idea....
caso delete y update ...... o eliminado y actualizado....

ahora bien cuando ud consulta dice

SELECT * FROM datos WHERE visible = '1';
o sea traeme todos los datos excepto los eliminados.... si
cuando elimina un dato pone el flag en 1 y tambien el visible... y ademas actualiza los datos...
del delete... fecha usuario etc....
asi si pone el flag en 1 o sea activo de nuevo puede preguntar quien actualizo eso...
que es quien volvio a poner activa la zapatilla espero se entienda la idea...

asi puede jugar a activar y preguntar elimnar y demas, importante los datos nunca se eliminan de la base de datos, o sea nunca debera hacer un DELETE para sus fines, los datos siempre estaran hay para llevar un log, eso si gracias al campo visible solo ocupa los con variable 1....
o sea activados....

bueno puede ocupar el mismo sistema para usuarios....

espero me halla entendido sorry por el libro X)

saludos
__________________
Gokuh Salvo al mundo. PUNTO!!!!