Comunidad de diseño web y desarrollo en internet online

¿cómo guardar los datos de la mejor forma? ¿arrays?¿clases?

Citar            
MensajeEscrito el 26 Sep 2009 04:26 pm
Hola :D

Estoy haciendo un programa en flash que guardará datos de clientes, de historiales, de inventario, de contabilidad, etc.

Los clientes pongamos que tienen nombre,edad,teléfono,etc
Los historiales son las respuestas a un conjunto de preguntas pre-definidas
El inventario guarda, para cada producto, el precio y la cantidad disponible
En contabilidad tendremos lo que se ha vendido, lo que se ha ganado, etc

No se muy bien como guardar estos datos.
Para empezar (no tengo gran experiencia en flash) he creado un XML donde guardo los datos de los clientes 'clientes.xml'. Este archivo está en local y su contenido puede ser p.e:

Código :

<listaDeClientes>
   <lista idcliente='0' nombre='Dani'     apellidos='Bus Fer'       domicilio='C/ Moreal 3 pta 4'       telefono1='961122334' />
   <lista idcliente='1' nombre='Pablo'    apellidos='To Fer'    domicilio='Avda Manía 34 pta 4'    telefono1='942220004' />
   <lista idcliente='2' nombre='Julian'    apellidos='Tente Guer'    domicilio='C/ Alemany 3 s/n'       telefono1='962220000' />
   <lista idcliente='3' nombre='Roberto' apellidos='Morales Ausente'    domicilio='C/ Primo Muñoz 3 pta 10'    telefono1='967722311' />
   <lista idcliente='4' nombre='Chus'     apellidos='Palomo Palomino'    domicilio='Senda de senet s/n'       telefono1='963344556' />
   <lista idcliente='5' nombre='Alberto' apellidos='Contador Segundo'    domicilio='C/ Holandels 134 pta 340'    telefono1='931221230' />
</listaDeClientes>


Luego, siguiendo los tutos que he visto en esta web, cargo los datos en varios arrays (uno tiene los nombres, otro los apellidos, otro los domicilios,etc). Accedo a cada cliente por su idCliente, que he hecho empezar en 0 al igual que un array. Así el cliente idCliente=0 es el 1º dato de cada array, el cliente idCliente=1 es el 2º dato de cada array,etc.

Esto me parece un poco 'para salir del paso'. He estado pensando que quizá sea mejor crear una clase 'cliente' con sus variable privadas y métodos para modificar los datos. Pero no se como combinar esto con un XML, a la hora de modificar el archivo.

Vengo de C y de C++, así que nunca he creado clases en flash y los tutos que veo por la red son un poco confusos.
¿Debería usar clases para los clientes? ¿y para el resto de cosas?

La idea es cargar los datos al inico del flash y que estén disponibles desde cualquier parte del programa.
Para eso yo hice que los arrays fueran globales. La cuestión es que, cuando esto heche a andar, los clientes deberían ser unos 2000-3000, y como es la 1a vez que hago este tipo de proyecto en flash, no se cómo reaccionará, es decir, si ocuparán mucha memoria, si demorarán la carga inicial del programa o su funcionamiento,etc.
De momento no me preocupa, pero sé que en el futuro sí lo hará. Ahora mismo cargo el XML entero en los arrays y ni se entera el pc. Quizá pueda, usando clases, cargar del fichero xml de clientes sólo lo que me interese en un momento dado y así no petar la memoria. No se, lo mismo lo que dije no tiene sentido :lol:

Agradecería cualquier tipo de ayuda, si me pueden orientar y recomendar algún buen tuto de clases y de modificación de xmls. Ando un poco perdido :(

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Sep 2009 01:45 pm

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 29 Sep 2009 08:51 pm
Hola

Gracias por contestar. La verdad es que llevo una "paja mental" con el tema grande, y creo que, ante mi poca experiencia programando en flash, debería optar por lo más sencillo.

Lo que voy a hacer intercambiará información con una BBDD en mysql, por tanto eso es lo que debería mirar. Las consultas sql y poco más.

Pero al mirar alternativas, se me ocurrió que podía almacenar la información en un fichero XML ya que al no haber bbdd por medio quizá fuese más sencillo. Lo que estoy viendo es que aunque puedo leer el xml, a la hora de modificarlo, flash no puede hacerlo directamente, por lo que tendría que tener php por medio. Y para eso creo que casi que uso el sql y ya está.

¿crees que ese es el enfoque adecuado?

Un ejemplo de lo que quiero hacer. Leo una lista de clientes y muestro en pantalla sus nombres. Entonces, al elegir uno, vamos a otro frame donde salen todos sus datos. Puede que tenga clientes con datos por rellenar. Entonces el usuario debe ser capaz de hacer clic en un campo de texto (que muestra la leyenda "falta por rellenar"), escribir la información que falta, hacer clic en un botón "Guardar", y que se guarde esa información.
Lo que me da miedo es que, deben cargarse todos los clientes, y si tienes p.e. 2000 (ya que tienes clientes antiguos), cada operación sea leeeeenta si tengo que leer un fichero XML muy grande.
En cambio si trabajo directamente en la BBDD es posible que no esos tenga problemas, ya que sólo debería leer la lista completa 1 vez (para los nombres) y después, al elegir uno, cargar sólo la info de ese.

Por daniel69

78 de clabLevel



 

firefox
Citar            
MensajeEscrito el 29 Sep 2009 08:57 pm
XML o txt solo si tienes SELECT, en cuanto tienes INSERT o UPDATE lo mas fácil es base de datos. Remoting compacta la info en formato binario, el peso de la info que se intercambia es menor, si lo haces con pares de nombre/valor (básicamente strings) el tamaño es mucho mayor.

Jorge

Por solisarg

BOFH

13669 de clabLevel

4 tutoriales
5 articulos

Genero:Masculino   Bastard Operators From Hell Premio_Secretos

Argentina

firefox
Citar            
MensajeEscrito el 02 Oct 2009 08:48 pm
Hola

Al final lo voy a hacer con bases de datos y XML.

He seguido varios tutos de cristalab y ya tengo un php en el server que, al lanzarlo, crea un xml a partir de una consulta. Es decir, la consulta se hace en el server (está ya hecha).
El php genera un XML que manda a flash, y éste lo procesa como un XML cualquiera.

La desventaja que veo es que tengo que hacer un php (o varios) con todas las consultas, pero bueno, me sobra con eso.

Luego me meteré a hacer lo contrario, es decir, modificar algo y cambiarlo en el server, pero eso es otra historia.

De nuevo, gracias por la ayuda. ¡Esto marcha!

Por daniel69

78 de clabLevel



 

firefox

 

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