I have added code to the FOG Source in an attempt to limit the deletes and writes to the database. I'm writing a news post for the purpose of making sure people are made aware of this change.
In the past, changes to an Item operated in a fashion of Destroying all associated elements, and re-adding what was needed. This should still work for the most part, but it leaves too much to chance. It also left potential for a LARGE number as an auto increment value of the identifier fields.
I write this post in the attempt to ensure people are made aware of the change, and to know to post if they notice any issues. While I have tried ensuring all potentials are tested, I am still a person. My typical trend on changes is the screw up miserably the first few tries. I'm hoping this is not the case, but I'm not trying to leave it to chance.
Some of the reasons why I've added this code is to ensure that those "chances" of problems are greatly limited. FOG should no longer just remove everything and re-add again, it will only remove things that are changed or removed, and it will only "add" new items. This is also true of the case of updating one of the associative fields. For, example, MAC Addresses that are changed on the GUI will then be removed and added, but all the MAC Addresses that are not changed, will not be removed, and re-added.
Hopefully this all make sense, and hopefully will be reported properly if anything nefarious is noticed.