Assigning a GUID to each feature would require you to change the database schema, which you said you can't do. Since that's not an option you'll have to figure it out based on the situation you're in. To get back to the feature, you would need to store information about the database it comes from along with which feature class it belongs to and the OID of that feature within the feature class. The OIDs are unique within the feature class and the feature class is unique within the database. The problem is that database names are not unique. You could have any number of personal geodatabases on a machine all with the same name just located in different directories. The path to each would be unique, but only on that machine. So, if it's possible to have databases on different machines with the same name then you would also need to store the machine name. Maybe your environment is simple enough that you don't need to worry about all possibilities and only storing the database name is sufficient. Perhaps you're only concerned with features from layers in a specific map document. You might then only need to store the layer name from the document (and perhaps the document name) and the feature OID. This, of course, assumes layer names will be unique within the document. As you can see, every answer includes "it depends". This isn't something that anyone can really help you with as you're the only one who knows the environment you're working in.