Saving Group of Persons and every change in it
I have this situation were I need to include Persons inside a Group.   
For that, I create a relation like the one showed in the image.

The groups are constantly changing (several times a day, several persons are added and removed from a group).   
I need to save the status of the group everytime it changes (which persons were in it and between which dates), for later analysis.   

For that, everytime a Person is to be added or removed from a Group, my application does the following:   

 1. get the current Group (and the Persons in it)
 2. create a list (in memory) of Persons in the group, excluding or adding the ones to bem removed or added
 3. creates a new Group
 4. insert the Persons (from the list in point 2) in the Group
 5. return the new GroupId

This GroupId is used to save a log of the changes in the group.

This is the design I came up with, but as I'm a single developer I'm afraid I'm not seeing it clearly.  
Can you point me other (better) ways of achieving the same features?

Saving Group of Persons and every change in it
===

I have this situation were I need to include Persons inside a Group.   
For that, I create a relation like the one showed in the image.

The groups are constantly changing (several times a day, several persons are added and removed from a group).   
I need to save the status of the group everytime it changes (which persons were in it and between which dates), for later analysis.   

For that, everytime a Person is to be added or removed from a Group, my application does the following:   

 1. get the current Group (and the Persons in it)
 2. create a list (in memory) of Persons in the group, excluding or adding the ones to bem removed or added
 3. creates a new Group
 4. insert the Persons (from the list in point 2) in the Group
 5. return the new GroupId

This GroupId is used to save a log of the changes in the group.

This is the design I came up with, but as I'm a single developer I'm afraid I'm not seeing it clearly.  
Can you point me other (better) ways of achieving the same features?
