Closed
Description
Proposed Changes
There are several areas in NetBox where an object can be assigned to multiple types of "parent" object. Some examples include:
- VLANGroup scope
- Service device/VM
- IPAddress interface
As we continue to extend the data model, this type of relationship will become more common. The current implementation generally employs a separate ForeignKey field for each model, to overcome performance limitations concerning the use of GenericForeignKey. Moving forward, we should look into alternative implementations that might be easier to maintain without sacrificing performance significantly.
Justification
If we can identify a suitable solution, this will allow us to support multi-model parent relationships without needing to add multiple discrete ForeignKey fields, reducing the long-term maintenance burden.