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.
-~----------~----~----~----~------~----~------~--~---