I often like adding an OID (Owner ID) instance variable to objects created by another object, so they're always a part of each other. I suggest doing that if you use objects like archetypes. For instance, in Byte Sized Heroes, I have two Objects for every character, two for every bullet, two for every vehicle, etc. I have a MASK, and SPRITE, which both have OID variables for everything. So, if, for instance, I want to know where a bullet came from, I just select the object with a UID equal to the OID of the bullet.
Also, I tend not to call it PID (Parent) and CID (Child), because PID can easily be confused with PeerID, which is used in multiplayer.
Just some tips.