ProposalAdding package_id to acs_objects. See here
ReasonAlmost all objects are being created by a package instance and thus belong to a package, but every package has it's very own way of storing the information on what objects belong to which instance. This information is sometimes very hard to obtain or in cases where this information is not available almost impossible to get through the context-hierarchy.
Storing the information about which package created an object in a central place would enable central services such as categories or search to list results with the name of the package instance that's able to display this object (in the rare case where multiple packages could deal with the same object it really doesn't hurt to show just the creator package).
Disadvantagespackage_id is not available for some internal objects such as acs_rels, groups or users, therefore null values will have to be used for these types. Since the amount of these objects on a reasonable site is almost negligable I do think this is not such a great disadvantage.
SolutionAll packages need to be changed to store the package_id of newly created objects in acs_objects (need extended interface for acs_object.new). Upgrade scripts need to be written. acs_objects need to be extended with the column "package_id" of type integer, referencing acs_packages, without (!!) a "not null" constraint.
Will do the core changes and the changes to news, forums, blogger, file-storage, mailing-lists, categories and someone else should do it on the other packages.