List:Spanish« Previous MessageNext Message »
From:Esteban Vega Date:December 18 2009 2:35pm
Subject:Re: Duda funcionamiento logico en BD
View as plain text  
En si, el núumero de orden puede ser el id, la forma como normalmente 
uno restringe el acceso a los datos es identificando al usuario y como 
los usuarios deberán estar enlazados con las ordenes (osea la tabla 
ordenes debería tener un campo "user_id") entocnes de esa forma se 
podría verificar si el usuario está tratando de ver una orden propia o 
está intentando ver cosas de otros, entonces se toma la cción correctiva.

Si lo que se quiere es traer la última orden del usuario entonces es un
select * from ordenes where user_id = # order by id DESC;
ó
select * from ordenes where user_id = # order by fecha_pedido DESC;
ó
select * from ordenes where user_id = # && status = 'en proceso' order 
by fecha_pedido DESC;

lastInsertId() trae el último id así que si el último carrito es de
otro 
usuario que por casualidad lo ingresó al mismo tiempo entonces habrán 
errores.

La otra es asignar números de orden por ejemplo en PHP con uniqid() que 
genera una cadena que no se repite si se vuelve a llamar esa función, si 
está en otro lenguaje puede implementarla facilmente.

Thomas Goik - auxion.de escribió:
> Hola Hahmael;
>
> Primero, en MySQL puedes usar la FUNCION last_insert_id(), que te devuelve
> el ultimo auto_increment valor de la existente conexión que estas usando 
>
> Algo así puedes hacer: insert into TABLE_DETALLES_ORDENES values (NULL,
> last_insert_id(),int_cod_prod)
> Siempre haciendo el insert anterior en la tabla de la cual quieres usar el
> AI: insert into TABLE_ORDENES
>
> Un cosita, para que la tabla sea de FIX ROW SIZE es conveniente  que usas
> char en vez de varchar para estado_orden o mejor un tinyint unsigned not
> null
> o enum('lista','de','estatus') not null default 'lista'
>
>
> Mit freundlichen Grüssen
> Thomas Goik
>
> --
> Lofox GmbH
> Geschäftsführerin: Evelyn Fuchs
> Im Kamperholz 48
> 44805 Bochum - Germany
> Amtsgericht Bochum HRB 7042
> USt-IdNr.: DE215698227
> St.-Nr. Bochum 306/5885/0172
>
>
>   
>> -----Mensaje original-----
>> De: hahmael [mailto:hahmael@stripped]
>> Enviado el: viernes, 18 de diciembre de 2009 6:46
>> Para: mysql-es@stripped
>> Asunto: Duda funcionamiento logico en BD
>>
>> Buenos dias, tardes o noches a todos.
>>
>> Tengo la siguiente duda, poseo 3 tablas que corresponden a:
>> -------------------------------------------------------------
>> 1. TABLE ORDENES
>> no_orden         INT Primary Key
>> fecha_ordeb     DATETIME
>> estado_orden   VARCHAR
>> ----------------------------------------------------------------
>> 2. TABLE DETALLES ORDENES
>> id_ordenes       INT Primary Key
>> no_orden          INT Foreign key
>> Cod_producto    INT FK
>> ----------------------------------------------------------------
>> 3.TABLE PRODUCTOS
>> Cod_producto            INT PK
>> name_product           VARCHAR
>> description_product   TEXT
>> Costo_producto           DECIMAL
>> Rank_producto            INT
>>
>> -----------------------------------------------------------------------
>>
>> La lógica es la siguiente un usuario realiza una orden, con una serie
>> de
>> productos el usuario envía, el sistema genera una No de Orden el cual
>> es un
>> valor único por lo tanto es una PK en table Ordenes, luego almacena uno
>> a
>> uno los productos que envía en la tabla Detalles la cual cada producto
>> estará relacionado con su numero de orden correspondiente, por lo tanto
>> una
>> orden puede tener muchos detalles que realmente son productos ya
>> existentes,
>> la Duda radica en la generación de ese numero de orden, de que manera
>> podría
>> generarlo, si dejo un autoincremente en INT estaria bien, pero necesito
>> tener ese identificativo único al momento de crear para luego poder
>> realizar
>> el insert de productos de esa orden, pero para ello al momento de
>> realizar
>> la primera ejecución que es el insert ordenes debo conocer es ID sino
>> no
>> podre insertas en detalles, esto evitando colisiones o que un usuario
>> tome
>> un numero de orden que no corresponde.
>>
>> Espero alguien pueda entenderme y orientarme, estoy un poco
>> confundido..espero no sea la cafeína.
>>
>>
>>
>>
>> --
>> Agradecido.
>>
>> Hahmael Tâher.
>>     
>
>
>   

Thread
Duda funcionamiento logico en BDhahmael18 Dec
  • RE: Duda funcionamiento logico en BDThomas Goik - auxion.de18 Dec
    • Re: Duda funcionamiento logico en BDEsteban Vega18 Dec
    • Re: Duda funcionamiento logico en BDhahmael18 Dec
      • RE: Duda funcionamiento logico en BDThomas Goik - auxion.de18 Dec