[Ayuda] No sй como resolver esto
#1

El tema es que estoy creando un sistema de negocio y vengo bien. Mi problema es cuando me pongo a pensar en la arquitectura de las tablas porque quiero que el usuario que comprу el local, segъn el tipo de tienda, pueda comprar stock de un tipo por X precio y luego, poner el precio de X objecto en el nъmero que йl desee, bбsicamente como en la vida real.

El asunto es que no sй por donde arrancar, la base de datos hasta ahora tiene lo siguiente:
nombre, valor, tipo, entrada X, entrada Y, entrada Z, salida X, salida Y, salida Z, dueсo, estado (esto es para determinar si esta abierto o cerrado)

їCуmo puedo pensar esto?
O mejor aъn, saben de algъn GM que tenga esto para ver su cуdigo e intentar, a mi manera, hacerlo de manera similar.
Reply
#2

Planteate esto, una tienda usa algъn tipo de mueble o equipos de refrigeraciуn para guardar los productos. Una tienda pequeсa tendrб 1 mueble y 2 heladeras, el mueble tendrб la capacidad de almacenar 5 cosas, mientras que las heladeras tendrбn la capacidad de 10 lugares correspondientes para el almacenamiento de botellas (1 botella = 1 lugar).
En este caso, tendrнas que definir la capacidad de almacenamiento de cada tienda, si el almacenamiento serнa de 10 el diseсo de la base serнan 20 lugares, 10 lugares guardarбn el producto que se vende, y los otros 10 lugares serбn para almacenar el precio de los productos a vender.
Yo lo harнa asн, muchas columnas pero por ahora es la ъnica manera que se me ocurre.
Reply
#3

Quote:
Originally Posted by GlobitoPawn
Посмотреть сообщение
Planteate esto, una tienda usa algъn tipo de mueble o equipos de refrigeraciуn para guardar los productos. Una tienda pequeсa tendrб 1 mueble y 2 heladeras, el mueble tendrб la capacidad de almacenar 5 cosas, mientras que las heladeras tendrбn la capacidad de 10 lugares correspondientes para el almacenamiento de botellas (1 botella = 1 lugar).
En este caso, tendrнas que definir la capacidad de almacenamiento de cada tienda, si el almacenamiento serнa de 10 el diseсo de la base serнan 20 lugares, 10 lugares guardarбn el producto que se vende, y los otros 10 lugares serбn para almacenar el precio de los productos a vender.
Yo lo harнa asн, muchas columnas pero por ahora es la ъnica manera que se me ocurre.
Es cierto, es muy bueno, pero los diferentes locales tendrнan diferentes productos y diferentes cantidad de productos. Por ejemplo: un local de venta de celulares tendrнa un sуlo objecto
Reply
#4

Quote:
Originally Posted by nikotragedy
Посмотреть сообщение
Es cierto, es muy bueno, pero los diferentes locales tendrнan diferentes productos y diferentes cantidad de productos. Por ejemplo: un local de venta de celulares tendrнa un sуlo objecto
Eso no va en la base de datos, en la base de datos sуlo tendrнas que guardar el id del producto, la cantidad actual (que me olvidй en el ejemplo anterior), y el precio que se la asigne.
Ahora para el sistema deberнas usar un array con todos los productos, ahн tendrнas los datos de cada producto, como por ejemplo, el ID (lo cual serб para identificar el producto de la base de datos con sus datos), el nombre, el tipo de producto, la cantidad lнmite (stock), el id del objeto, lo que sean datos principales para tu sistema.
Reply
#5

Quote:
Originally Posted by GlobitoPawn
Посмотреть сообщение
Eso no va en la base de datos, en la base de datos sуlo tendrнas que guardar el id del producto, la cantidad actual (que me olvidй en el ejemplo anterior), y el precio que se la asigne.
Ahora para el sistema deberнas usar un array con todos los productos, ahн tendrнas los datos de cada producto, como por ejemplo, el ID (lo cual serб para identificar el producto de la base de datos con sus datos), el nombre, el tipo de producto, la cantidad lнmite (stock), el id del objeto, lo que sean datos principales para tu sistema.
Entiendo, era un sistema mбs complejo del que habнa pensado. Gracias por el empujуn
Reply
#6

Quote:
Originally Posted by nikotragedy
Посмотреть сообщение
Entiendo, era un sistema mбs complejo del que habнa pensado. Gracias por el empujуn
No es tan complejo como parece, sуlo hace falta un poco de imaginaciуn y nada mбs (obviamente saber un poco pawn).
Ejemplo, para hacer este tipo de sistema seguramente tendrбs un enum con los datos de las tiendas, agrega al enum el almacenamiento disponible, si el mayor almacenamiento que tendrб una tienda es de 5 en la base de datos deberбs crear unas 15 filas mбs o menos (id de producto, cantidad actual, precio), a lo que me refiero con "almacenamiento" es a la cantidad de lugares que tendrб la tienda referida al STOCK DE UN PRODUCTO, ejemplo, en 1 lugar se podrб almacenar un stock de 5 botellas, de los cuales el lнmite ese se harб en cuanto a cуdigo nada mбs, la base de datos tiene el propуsito de almacenar datos, lo demбs es puro cуdigo.

Para almacenar la informaciуn de un producto usarбs un array, tambiйn usarбs un enum para identificar la informaciуn.
PHP код:
enum ProductosInfo
{
  
producto_id//El ID del producto.
  
producto_nombre[20], //El nombre del producto con un lнmite de 20 caracteres.
  
producto_tipo//El tipo del producto.
  
producto_limite //El lнmite de stock del producto.
}
new 
Productos[][ProductosInfo] =
{
  {
0"Gaseosa",     1,   10}, //ID: 0 - Nombre: Gaseosa - Tipo de producto: 1 - Cantidad lнmite: 10.
  
{1"Vino tinto",  2,   6},  //ID: 1 - Nombre: Vino tinto - Tipo de producto: 2 - Cantidad lнmite: 6.
  
{2"Galletitas",  3,   5},  //ID: 2 - Nombre: Galletitas - Tipo de producto: 3 - Cantidad lнmite: 5.
  
{3"Hamburguesa"4,   2}   //ID: 3 - Nombre: Hamburguesa - Tipo de producto: 4 - Cantidad lнmite: 2.
};
//Para hacer llamada al array serб:
//Productos[ID][INFORMACION];
//Ejemplo:
CMD:gaseosa(playeridparams[])
{
  new 
texto[50];
  
format(textosizeof(texto), "El lнmite de stock de la gaseosa es de: %d"Productos[0][producto_limite]);
  
SendClientMessage(playerid, -1texto);
  return 
1;

En la programaciуn se usa mucho la lуgica, algoritmos, lo mejor es aplicarlo cada vez que se te presente alguna idea que quieras hacer, debes imaginarte cуmo funcionarб el sistema, lo cual serнa un algoritmo, ejemplo, si el jugador no tiene $100 no podrб comprar un producto cuyo valor es de $150, entonces quй es lo que harб? se le enviarб un mensaje diciendo que no le alcanza, y quй pasarб si tiene esos $150? podrб comprar el producto, se le entregarб el producto comprado y se descontarб el dinero.
Intenta lo que te dije, imagina el sistema, eso me funciona a mi y no me rompo tanto la cabeza xD
No te des por vencido, cualquier cosa comentalo por acб, saludos.
Reply
#7

Hay veces que la programaciуn es frustrante. Buscando una idea sobre cуmo encontrar si el jugador estб cerca de X negocio usй este cуdigo:

PHP код:
IsPlayerNearBiz(playerid)
{
    
    for(new 
1MAX_NEGOCIOSi++)
    {
        if(
IsPlayerInRangeOfPoint(playerid3.0nInfo[i][nEntradaX], nInfo[i][nEntradaY], nInfo[i][nEntradaZ])) return i;        
    }   
    return -
1;

Antes, busquй imprimir los datos del negocio para ver que carguen bien (si).
Al no funcionar la entrada al local, probй si IsPlayerNearBiz devolvнa un valor normal, por lo tanto probй imprimir su valor, la sorpresa que me llevo cuando veo que imprime nada mбs y nada menos que la contraseсa del jugador. їDуnde puede estar el error? Segъn el cуdigo de ahi deberнa funcionar
Reply
#8

Quote:
Originally Posted by nikotragedy
Посмотреть сообщение
Hay veces que la programaciуn es frustrante. Buscando una idea sobre cуmo encontrar si el jugador estб cerca de X negocio usй este cуdigo:

PHP код:
IsPlayerNearBiz(playerid)
{
    
    for(new 
1MAX_NEGOCIOSi++)
    {
        if(
IsPlayerInRangeOfPoint(playerid3.0nInfo[i][nEntradaX], nInfo[i][nEntradaY], nInfo[i][nEntradaZ])) return i;        
    }   
    return -
1;

Antes, busquй imprimir los datos del negocio para ver que carguen bien (si).
Al no funcionar la entrada al local, probй si IsPlayerNearBiz devolvнa un valor normal, por lo tanto probй imprimir su valor, la sorpresa que me llevo cuando veo que imprime nada mбs y nada menos que la contraseсa del jugador. їDуnde puede estar el error? Segъn el cуdigo de ahi deberнa funcionar
Raro, debes estar accediendo mal a los datos, cуmo comprobaste el valor que imprimнa?
En cuanto al cуdigo funciona, comprueba el ID del negocio al que quieras acceder, ya que la funciуn tiene un bucle que empieza desde el nъmero 1, si estбs intentando ingresar a un negocio cuyo ID es 0 (Lo mбs probable) no te lo tomarб ya que no recorrerб esa informaciуn.
Reply
#9

Quote:
Originally Posted by GlobitoPawn
Посмотреть сообщение
Raro, debes estar accediendo mal a los datos, cуmo comprobaste el valor que imprimнa?
En cuanto al cуdigo funciona, comprueba el ID del negocio al que quieras acceder, ya que la funciуn tiene un bucle que empieza desde el nъmero 1, si estбs intentando ingresar a un negocio cuyo ID es 0 (Lo mбs probable) no te lo tomarб ya que no recorrerб esa informaciуn.
Es que justamente mis negocios empiezan desde ID 2.
El acceso a los datos estб bien (al menos hasta ese bucle), de hecho imprimo todos los datos cargados en la base de datos. Quiero decir, si cargo nEntradaZ en un bucle for, me muestra todos los valores (correctos) de nEntradaZ
Reply
#10

Quote:
Originally Posted by nikotragedy
Посмотреть сообщение
Es que justamente mis negocios empiezan desde ID 2.
El acceso a los datos estб bien (al menos hasta ese bucle), de hecho imprimo todos los datos cargados en la base de datos. Quiero decir, si cargo nEntradaZ en un bucle for, me muestra todos los valores (correctos) de nEntradaZ
Cуmo estбs usando IsPlayerNearBiz?
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)