Hi!
It does feel messy and fragile to me. Maybe a separate table could store this?
Separate table would have to be maintained in very same way - there's nothing less fragile about it. Now having it all in main links tables allows data views with more information :)