Re: Many to many relationship... some problem
Re: Many to many relationship... some problem
- Subject: Re: Many to many relationship... some problem
- From: Ray Kiddy <email@hidden>
- Date: Fri, 7 Aug 2009 16:35:23 -0700
On Aug 4, 2009, at 6:16 AM, Francesco Romano wrote:
And.. if I change to this ?
Product <->> LineItem <<-> Cart
And Cart is linked to:
Cart <<-> Customer
Cart <-> Order
The customer and order foreign keys are both optional and both
inside the Cart Entity.
So.. if a user want to save a cart (and not place an order) I link
the cart directly to a customer.
If the user want to place the order, the cart is linked to the order
and unlinked from the customer (this because Order <<-> Customer)
What do you think? Can this be correct?
EOF tends not to like having a to-one optional method. It would be
more in "the EOF way" if the Cart and Order, which are one-to-one to
each other, share pks and presumably the Cart would propagate pk to
the Order and Cart would own the Order.
When I want to do a optional to-one, I end up doing a optional to-many
in the EOModel and then I implement a setter and getter in the
business logic. So there would be a "orders" relationship in the Cart
entity, but a method in the Cart object would be:
public Order order() { return this.orders.get(0); }
and do the right thing in the setter. Something like:
public void setOrder(Object value) {
if (orders.count() > 0) { /* the remove it */ }
orders.addToRel(value);
}
cheers - ray
Francesco
On 04/ago/09, at 11:32, Amedeo Mantica wrote:
On 03/ago/09, at 19:45, Francesco Romano wrote:
Ok.. I'll postpone this,,
Now.. for the model I was thinking at this:
Order <->> LineItem(has quantity as attribute) << - >Product
This should solve the to-many problem..
To save the cart... I thought to:
Customer <->> LineItem
Or:
Customer <-> Cart <->> LineItem
(Cart entity is useless, but I can add a LastUpdated date ...)
What do you think?
as a first rapid look seem to be ok
Ciao
Amedeo
On 03/ago/09, at 19:02, Amedeo Mantica wrote:
you can do it via webobjects but is a bit "hard"
is more easy to do a call to a directaction using "curl" sheduled
via launchd or cron
Regards
Amedeo
On 03/ago/09, at 18:51, Francesco Romano wrote:
On 03/ago/09, at 18:49, Amedeo Mantica wrote:
On 03/ago/09, at 18:40, Francesco Romano wrote:
On 03/ago/09, at 18:29, Amedeo Mantica wrote:
why do you want to put the quantity in that table ???
leave the relationship alone
create a table " cart " with a relationship to product and a
column quantity.
then create a relationship cart to order
Regards
Amedeo
Because I was thinking to save the cart in the cookies..
Should I save the cart of every customer even if they don't
place an order? (this is a question.. I don't know how things
work..)
yes, so you can give customers choice to save cart and finish
order later, if the order is not finished within some days you
trash the cart
Amedeo
Yeah.. I have to change the model a bit :p
Btw.. how can I trash the cart automatically? Is it possible
with WO?
Francesco
On 03/ago/09, at 18:16, Francesco Romano wrote:
On 03/ago/09, at 18:04, Lachlan Deck wrote:
On 04/08/2009, at 1:39 AM, Francesco Romano wrote:
On 03/ago/09, at 16:10, Lachlan Deck wrote:
On 03/08/2009, at 7:21 PM, Francesco Romano wrote:
Hi..
I'm having some problem with a many-to-many relationship.
I've two entities: Order and Product.
They have a many-to-many relationship, and an attribute:
quantity.
The strange thing is that I don't see the OrderProduct
model generated...
Check the value of Class Name in the model. It's probably
EOGenericRecord. Change it to you.model.OrderProduct
You are right.. Now I see the class
Well.. to be honest I don't understand how many-to-many
works... (In WO.. I know the "DB-theory")...
OrderProduct orderProduct =
(OrderProduct)EOUtilities.createAndInsertInstance(ec,
OrderProduct.ENTITY_NAME);
// or
OrderProduct orderProduct =
OrderProduct.createOrderProduct(ec, product, order);
orderProduct.setQuantity(quantity);
ec.saveChanges();
Little problem.. the only method createOrderProduct has as
arguments: editingContext, quantity.
1) Your OrderProduct should (usually) have a compound
primary key. (orderID, productID). Both keys shouldn't
allow null. Both relationships (order, product) should be
manditory. Then regenerate your class.
I attach an image.. it's the OrderProduct entity.
<Picture 1.png>
So.. I can't set it's pks.
2) This is good. :-) You're dealing with objects now, not
database artifacts like pks and foreign keys. You'll be
setting object relationships not pk/fk relationships.
Simply fetch the product/order _objects_ and
orderProduct.setOrder(order);
orderProduct.setProduct(product);
With pks I meant that I don't have the setProduct and
setOrder method (and in the constructor).
with regards,
--
Lachlan Deck
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden
)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden