Relation between entities in DDD
<p>I am a beginner on DDD, working around small, simple domains in order to get my head on all the principles of design.</p>

<p>I have this simple domain: institutions (<code>Institution</code>) and their available WiFi spots (<code>Place</code>) are kept in the database. No place can exist without an institution. Institution has manager user - assignee (<code>User</code>), which has the right to add new places, reallocate or delete existing ones.  </p>

<p><a href="https://github.com/andrius-kulbis/ddd-playground" rel="nofollow noreferrer">Code can be found here</a>. The validation on value objects is left behind for now.  </p>

<p>This is influenced by <a href="http://verraes.net/2013/12/related-entities-vs-child-entities/" rel="nofollow noreferrer">Mathias Verraes on child entities</a>. </p>

<p>Is it a correct DDD design? or at least close to it?</p>

<p>While being a data-centric programmer, I still wonder how would I list all the places for all the Institutions, if the rule of thumb is accessing aggregates through the aggregate root?</p>

<p>Is the idea of generating <code>Uuid</code> inside of the entity itself (<code>Place::create</code>) good?</p>

<p>Should an idea, that only assignee (<code>User</code>) can add/remove places be expressed on the domain itself or should it be the responsibility of client? In this case it would be wise if the assignee would know about his managed institution (<code>institutionId</code> in <code>User</code>?).</p>

<p>Isn't the <code>Institution::placeById</code> breaking any principles of DDD? Maybe it is the responsibility of the repository?</p>