Thank you very mutch. Propably you have saved me a lot of time.
On 17. Aug, 15:31 h., Peter Herndon <tphern...@gmail.com> wrote:
> Hi Tibor,
>
>
>
> On Mon, Aug 17, 2009 at 4:17 AM, gentlestone<tibor.b...@hotmail.com> wrote:
>
> > I'm looking for a support for something like Eric Evans Value Objects
> > (http://domaindrivendesign.org/). For example, if I have a Person
> > model like
>
> > class Adress(models.Model):
> > street = ...
> > city = ...
> > postal_code = ...
>
> > class Person(models.Model):
> > home_adress = models.OneToOneField(Adress)
> > business_adress = models.OneToOneField(Adress)
>
> > Adress is like a Value Object, but I don't want any adress table, nor
> > extra foreign key and database joins. My application is not made for a
> > National Post Office domain. I just want an Adress class whitout
> > database identity.
>
> I think you're approaching the problem incorrectly. When dealing with
> a relational database, go ahead and view things from a relational
> perspective. In this case, if you want your Person model to have
> zero, one, or multiple Addresses, and a single Address can be used by
> multiple people, what you want in Django is a ManyToMany field. Yes,
> this creates a couple more tables and the requisite joins, but as it
> so happens, that likely won't be a problem for you, as you are writing
> an application that is as you say "not made for National Post Office
> domain." In short, don't fight the relational model in this case. It
> is designed to handle such tasks. The only reason you might want to
> avoid an extra table or two is due to poor performance, but I suspect
> that you are optimizing prematurely. Until you have a large number of
> users, you don't need to worry about one M2M field. And your first
> choices for optimization in Django should be caching and setting up a
> separate image server, not database denormalization.
>
> Django's ORM is a very powerful tool, and it makes the developer's
> life a lot easier in many ways, but that in part is because the Django
> developers made design choices that reflect best practices and channel
> users in the proper direction. The fact that Django does not make it
> easy to do what you think you want is likely a sign that you are going
> upstream against the natural flow of Django. In short, take it as a
> warning sign that you should rethink your approach. Try working with
> Address as a ManyToMany field, and see whether that works for your
> application. From there, if it presents a problem, you can always
> rethink later, and you will have the benefit of knowing what problems
> you need to work around.
>
> Hope that helps,
>
> ---Peter
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"Django users" group.
To post to this group, send email to django-users@googlegroups.com
To unsubscribe from this group, send email to
django-users+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/django-users?hl=en
-~----------~----~----~----~------~----~------~--~---