In my situation, I've a header table and a detail table. Naturally, I create objects for each them let say Header and Detail. In Header object, I need to hold a number of Detail objects. So, I create a collection object of Detail. The collection object is inherited from BindingList(Of Detail) as I need to data bind it later on. I would like to know is that a common or good design If not, what's the better way
The reason that I've this question is because I found that I need to make a search function for the Header now. So, I think I need to create a Search object and the search object will contain a collection of Header objects. The probem is when the Header object is created, its Detail objects are created as well. This will create a huge overhead.

Object design question