Hi Elena,

You’re absolutely right. We need to redeploy Parent when an organisation upgrades and we need to preserve the mapping there.

In reality, we archive that by using another EternalStorage which is attached to the Parent and not a mapping (which I put there for simplicity and trying to focus on Organisation contract). And because EternalStorage is already explained as an approach. 
In fact we don’t have any mappings in our source as we cannot iterate over them (unless you use some specific implementation such as Chris Seth’s itterable mapping).
So effectively this data structure

mapping(bytes32 => address) public organisations;

is modelled as follows in Parent contract EternalStorage instance:

sha3("OrganisationKey", bytes32 organisationKey) -> uint index
sha3("OrganisationIndex", uint index) -> address colony address

for example, in EternalStorage, this maybe stored as follows

sha3("Adventure Works") = 138
sha3(138) = "0xd91cf6dac04d456edc5fcb6659dd8ddedbb26661"

I realise I may have oversimplified the examples thus losing some of this content. Thanks for the great question :)

One clap, two clap, three clap, forty?

By clapping more or less, you can signal to us which stories really stand out.