The Markup_BasedID is a property used to tie the markup file with the base file.
Only markup files have this property set as multiple markups can be applied to one base file.
So instead of listing all the markup dIDs for the base file, we map the markup files to the base.
Basefile(dID=123) <-- Markup(dID=456, Markup_BasedID=123)
I hope this answers your question.
MarkupCounter is used on the base file and should be incremented every time a new markup is added.
Markup_BasedID is used on the markup file (not the base file) and it holds the base file ID.
MarkupType is used on the markup file (not the base file).
So, if you save a new markup, the only field that should change on the base file is MarkupCounter.