Hello.

Aha, i see, what about  instead of having a single Address table with 
duplicates, I have 2 Address table, one for the person and one for the invoice, 
let's called InvoicedAddress, so when creating the invoice, I as you say, make 
a copy of the selected User address and assign it to InovoicedAddress instead? 
this will create the record on that table when saveChanges(); isn't  it?

G.


On Nov 16, 2009, at 3:20 PM, David Avendasora wrote:

> Hi Gustavo,
> 
> This is one of those situations where the business rules contradict 
> Normalization rules for the DB.
> 
> The Business rules override the normalization rules.
> 
> Invoice should have it's own relationship to Address, and it should not point 
> to the same object as the person does. When you create an invoce and give it 
> an address, you should duplicate the person's address object and then add the 
> duplicate to the Invoce. You will end up with multiple copies of the same 
> address in the DB, but if the Invoice must maintain the address without 
> changes, you can't relate it to the same object.
> 
> Duplicating EOs is simple using the method outlined in Practical WO, and I 
> think the copyable interface described there has been added to 
> ERXGenericRecord so you should be able to do this with very little work.
> 
> Having multiple instances of the same object is usually a no-no from both the 
> WO and DB perspective, but in the situation you describe, duplicate instances 
> _is_ the way to go, because they are only duplicates by coincidence, not by 
> business rule.
> 
> Dave
> 
> 
> On Nov 16, 2009, at 6:22 AM, Gustavo Pizano wrote:
> 
>> Hello all.
>> 
>> I know this is off topic, but you guys have helped me in the past with such 
>> a questions, so I hope Im not bothering anybody.
>> 
>> Im building a Invoicing app, so I have my EOModel and this is what I have.
>> 
>> Person: 
>> Client: Parent is Person
>> User: Parent is Person.
>> 
>> Person < >> Address  (toAddress)
>> 
>> Invoice << > User (toUser)
>> Invoice<< > Client (toClient)
>> InvoiceItem<< >>  Invoice
>> InvoiceStatus< >> Invoice
>> 
>> now... what happens if the Person changes address?, it will change the 
>> address of all already created invoices, which for record purposes its not 
>> allowed, it think. (I mean my already created invoices should stay as they 
>> where created)
>> 
>> So is it correct to add a relation from Invoice << > Address ?, so when I 
>> add a new address to Person the invoice will kept the old address. right?
>> 
>> how can I avoid when modifying the address, if I do this, then the invoice 
>> toAddress will change also.
>> 
>> Thanks
>> 
>> 
>> G. _______________________________________________
>> Do not post admin requests to the list. They will be ignored.
>> Webobjects-dev mailing list      ([email protected])
>> Help/Unsubscribe/Update your Subscription:
>> http://lists.apple.com/mailman/options/webobjects-dev/webobjects%40avendasora.com
>> 
>> This email sent to [email protected]
>> 
>> 
> 
> David Avendasora
> Senior Software Engineer
> K12, Inc.
> 
> *****
> WebObjects Documentation Wiki : 
> http://wiki.objectstyle.org/confluence/display/WO/
> *****
> WebObjects API: 
> http://developer.apple.com/legacy/mac/library/documentation/MacOSXServer/Reference/WO54_Reference/index.html
> *****
> 

 _______________________________________________
Do not post admin requests to the list. They will be ignored.
Webobjects-dev mailing list      ([email protected])
Help/Unsubscribe/Update your Subscription:
http://lists.apple.com/mailman/options/webobjects-dev/archive%40mail-archive.com

This email sent to [email protected]

Reply via email to