Maybe you have good reasons for your design in the given context.
In theory, you're often better off with a more loosely coupled, flexible, role-based design.
By that I mean that a person is a «Party», and father and mother are «Role»s that a person can play (other roles for a «Party» might be employee, customer, friend, and so forth).
I personally like Peter Coad's DNC pattern in order to solve this particular design problem. An article can be found here: http://edn.embarcadero.com/article/32543
Some years ago, I worked on a large ERP system where I introduced DNC in a C# + NHibernate context, so I know it works in practice as well ;-)
For an in-depth analysis of the role pattern/archetype, have a look at the book Enterprise patterns and MDA: building better software with archetype patterns and UML.
There's also ongoing research in order to solve this problem at the language level, rather than using a pattern, called DCI: http://www.artima.com/articles/dci_visionP.html