I'm designing a database to track company objects. Most of the objects are standard assets like desktops, laptops, cell phones, etc. But there are also more abstract objects like applications, licenses and offices. It is a non-negotiable requirement that all of these objects be in the same table. There are numerous instances where one of the properties of an object can be many different object types. For example, we track out software licenses and we need to track where that license was deployed. A piece of software can be used on a desktop, a laptop, a server or a mobile device, but we could also deploy it on one of our virtual servers, which is an abstract object. There are numerous instances of situations just like this.
So the issue, then, is that we want to do asset tagging, but since we have abstract objects mixed into our table that makes for hundreds of objects that would be assigned an Asset ID but are not, in fact, a physical asset that can be tagged. This seems like bad practice and also would waste money since we plan on getting our asset tages preprinted, many of them would just get thrown away.
From a design standpoint, how do I work around this problem while maintaining the ability to reference real and abstract objects in the same column.
Thank you.