In domain driven design, it is common knowledge that an object with an identity is an entity. For example, any person will have several forms of identity (name, etc).
But value objects are those objects with no identity. One common value object is address, however address has no identity. But at the database layer, we can have a composite key. Does this concept work in DDD? It would make address identifiable by the combination of roadname, postcode and door number (omitting information such as town and city). Money would be another value object.
The distinction seems to be in objects with no single identifiable field and value objects tend to not actually belong the entity. For example, "I" (replace with my name) may wear shoes etc but "I" am not shoes, shirt, etc (http://www.lostechies.com/blogs/joe_ocampo/archive/2007/04/23/a-discussion-on-domain-driven-design-value-objects.aspx).
Is this the right way to think about things? Also, with this mentality/approach, I can apply this to value/reference type selection in C#. I may as well go with the DDD approach though?
Thanks