Foro de elhacker.net

Programación => Desarrollo Web => Mensaje iniciado por: 01munrra en 6 Agosto 2012, 04:41 am



Título: Ideas de Logica!
Publicado por: 01munrra en 6 Agosto 2012, 04:41 am
saludos!!.. les comento, lo que quiero desarrollar es para añadir productos a un premio, de esta forma..... la empresa da premios y dicho premio tiene productos, estos productos pueden variar, es decir, pueden ser de 1 producto, hasta los productos que ellos quieran añadir a dicho premio,,,, ahora una cosa, imaginense, esto:

Premio 1:
-1 plancha.
-1 Tv.
-1 Bluray.

Premio 2:
-1 lapto.
-1 mesa para lapto.
-1 Iphone.
-PS3

Premio 3:
-1 Tv de 32 pulgadas.

Premio 4:
-1 Camara Sony
-1 Vajilla.
-1 Teatro casero.
-1 juego de muebles.
-1 ps3.
-1 aire condicionado.
-1 juego de vasos.

las idea de esto es que vean la idea, el administrador podra registrar dinamicamente los productos que quiera en un premio..... si lo vemos a nivel de base de datos cambiaria titalmente. y pues estaria mal asi......

y pues tienen alguna idea de como podria hacer ??? que hago, que desarrollo?... alguna idea?....

Gracias de Antemano!-



Título: Re: Ideas de Logica!
Publicado por: #!drvy en 6 Agosto 2012, 11:30 am
Hola, pues yo no le veo mucha complicación xD

1 base de datos, 3 tablas.

tabla: tb_premios - ID, Nombre... etc..
tabla: tb_productos - ID, Nombre.. etc..
tabla: tb_compilacion ID, ID premio, ID's productos separados por coma, etc...


Saludos


Título: Re: Ideas de Logica!
Publicado por: 01munrra en 6 Agosto 2012, 18:36 pm
mmmmmmmm............... y como hago para ir recolectando los ID de los productos?..... esta parte no la entiendo,..


saludos!!!


Título: Re: Ideas de Logica!
Publicado por: s00rk en 6 Agosto 2012, 19:09 pm
Hola, pues yo no le veo mucha complicación xD

1 base de datos, 3 tablas.

tabla: tb_premios - ID, Nombre... etc..
tabla: tb_productos - ID, Nombre.. etc..
tabla: tb_compilacion ID, ID premio, ID's productos separados por coma, etc...


Saludos

Separados por coma, emmm en mi parecer seria mejor ID del producto y ya.

Y si serian 3 tablas

Premios
ID int autoincrementable
Nombre varchar(50) NOT NULL

Productos
ID int autoincrementable
Nombre varchar(50) NOT NULL
Puedes agregarle detalles al producto

Premios_Producto
ID int autoincrementable
idPremio int 'Este hara referencia hacia Premios, para checar que ese premio exista
idProducto int 'Este hara referencia hacia Productos de que el producto exista

Ahora simplemente primero agregamos todos nuestros productos a la tabla Productos, luego de esto ahora creamos un nuevo Premio solo el nombre claro hehe, y ya finalmente vamos y agregamos los productos que tendra ese premio

[Productos]
ID    Nombre
1     Licuadora
2     Estufa
3     Televisor
4     Computadora
5     Auto


[Premio]
ID    Nombre
1     Casa
2     Estudiante

[Premio_Producto]
ID    idPremio    idProducto
1     1             1
2     1             2
3     2             3
4     2             4
5     2             5

Ya con eso podemos ver que el premio con ID 1, tiene los productos con ID 1 y 2, mientras el premio con ID 2 tiene los productos con ID 3, 4 y 5.

Bueno espero y te sirva hehe n_n
Saludos*!


Título: Re: Ideas de Logica!
Publicado por: #!drvy en 6 Agosto 2012, 21:50 pm
Código
  1. <?php
  2. $ids = '1,2,3,4,5,6,7,8,9,10';
  3.  
  4. function parsear_ids($ids){
  5.   if(empty($ids)){return false;}
  6.   $var = explode(',','0,'.$ids);
  7.   unset($var[0]);
  8.   return $var;
  9. }
  10.  
  11. print_r(parsear_ids($ids));
  12. ?>

Devuelve:
Código:
Array ( [1] => 1 [2] => 2 [3] => 3 [4] => 4 [5] => 5 [6] => 6 [7] => 7 [8] => 8 [9] => 9 [10] => 10 ) 

Lo de poner 1 registro por cada producto asociado al premio me parece personalmente una chorra.. gastas mas DB para nada creo yo. Pero es mi punto de vista =)

Edit: he modificado un poco la función para que no use foreach.

Saludos


Título: Re: Ideas de Logica!
Publicado por: Spider-Net en 6 Agosto 2012, 22:24 pm
Son dos formas diferentes de hacerlo, las dos funcionarían, aunque yo personalmente me quedo con el método del compañero drvy | BSM. Con un explode es muy sencillo separar los identificadores separados por comas (o cualquier otro caracter) y te ahorras espacio en la base de datos y tiempo a la hora de procesarlo. Creo que es más rápido crear un vector usando explode que contenga todos los id's de productos, que tener que recorrer todos los registros correspondientes a un premio en concreto en la base de datos.


Título: Re: Ideas de Logica!
Publicado por: 01munrra en 7 Agosto 2012, 04:34 am
Gracias!!,,, por sus sugerencia, de han ayudado mucho de verdad!.... voy a aplicarlo haber que tal....

Gracias!!   ;-)