On 3 mayo, 00:54, "felipe martin" <[EMAIL PROTECTED]> wrote:
> digo que:
>
> CREATE TABLE ventas (
>   id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
>   PRIMARY KEY(id)
> );
>
> CREATE TABLE productos (
>   id INTEGER UNSIGNED NOT NULL AUTO_INCREMENT,
>   PRIMARY KEY(id)
> );
>
> CREATE TABLE ventas_productos (
>   ventas_FK_id INTEGER UNSIGNED NOT NULL,
>   productos_FK_id INTEGER UNSIGNED NOT NULL,
>   precio INTEGER UNSIGNED NULL,
>   PRIMARY KEY(ventas_FK_id, productos_FK_id),
>   INDEX ventas_has_productos_FKIndex1(ventas_FK_id),
>   INDEX ventas_has_productos_FKIndex2(productos_FK_id),
>   FOREIGN KEY(ventas_FK_id)
>     REFERENCES ventas(id)
>       ON DELETE NO ACTION
>       ON UPDATE NO ACTION,
>   FOREIGN KEY(productos_FK_id)
>     REFERENCES productos(id)
>       ON DELETE NO ACTION
>       ON UPDATE NO ACTION
> );
> ventas hasAndBelongsToMany productos
> productos hasAndBelongsToMany ventas
>
> si las habtm no estan pensadas para tratar este modelo y no puedes mantener
> el precio de venta, quiza el modo de resolverlo sea:
>
> CREATE TABLE ventaproductos (
>   id INTEGER UNSIGNED NOT NULL,
>   venta_id INTEGER UNSIGNED NOT NULL,
>   producto_id INTEGER UNSIGNED NOT NULL,
>   precio INTEGER UNSIGNED NULL,
>   PRIMARY KEY(id),
>   INDEX ventas_has_productos_FKIndex1(venta_id),
>   INDEX ventas_has_productos_FKIndex2(producto_id),
>   FOREIGN KEY(venta_id)
>     REFERENCES ventas(id)
>       ON DELETE NO ACTION
>       ON UPDATE NO ACTION,
>   FOREIGN KEY(producto_id)
>     REFERENCES productos(id)
>       ON DELETE NO ACTION
>       ON UPDATE NO ACTION
> );
>
> es decir:
> ventas hasMany ventaproductos
> productos hasMany ventaproductos
> ventaproductos belongs ventas
> ventaproductos belongs productos
>
> No estoy seguro de las dos ultimas (quiza hasOne)

(Los dos ultimos deben ser belongsTo)

Arriaba solo hay HABTM (hasMany, belongsTo (Many)) escrito mas largo,
y si el 'join table' tiene sentido (como tu ejemplo), es mas lógico y
claro para usar 3 modelos con hasMany/belongsTo en lugar que un
HABTM.

Saludos,

AD
PD. TABLE ventas_productos -> TABLE productos_ventas si quieres (por
HABTM ) que cake conoce el nombre de las tables automáticamente.


--~--~---------~--~----~------------~-------~--~----~
Has recibido este mensaje porque estás suscrito a Grupo "CakePHP-es" de Grupos 
de Google.
 Si quieres publicar en este grupo, envía un mensaje de correo 
electrónico a [email protected]
 Para anular la suscripción a este grupo, envía un mensaje a [EMAIL PROTECTED]
 Para obtener más opciones, visita este grupo en 
http://groups.google.com/group/CakePHP-es?hl=es.

-~----------~----~----~----~------~----~------~--~---

Responder a