Best practice on Collection object / Collecting event Attributes?

Hi there,

Were about to inject some collection object attributes and collecting event attributes to existing collection objects and collecting events.

I see in the schema that Specify 5 came along with dedicated attributes tables with a few predefined text, integer, float, boolean attributes. E.g. Collecting Event Attribute or Collection Object Attribute.

Specify 6 offers a greater flexibility with the new tables collectionobjectattr and collectingeventattr associated with a custom definition attributedef.

Question : should we use the Specify 6 tables by default ? Or can we still use the Specify 5 tables if the predefined attributes are more than enough for our needs ?

Corollary question : could Specify 5 tables collectingeventattribute and collectionobjectattribute be marked as deprecated and removed from the schema in future release?

A jan 2023 post said at the time that:

The CollectionObjectAttrs relationship and table are not meant to be used at this time. You can however use the CollectionObjectAttribute relationship and table!

Still relevant?

Thanks for the tips,
Philippe V.

Hi Philippe,

Thanks for reaching out!

Regarding your question, we recommend using the “Specify 5” tables, collectionobjectattribute and collectingeventattribute, by default. These tables are the ones we currently support and encourage users to use despite the Specify 6 tables, collectionobjectattr and collectingeventattr, being included in the database.

These *attr tables were part of an earlier plan (>15 years ago) that was never fully developed. We discourage using these tables and instead point users to the *attribute tables for their needs.

Regarding your corollary question, we may eventually mark the *attr tables as deprecated and remove them from the schema in a future release. However, they remain in the current version, and we have no plans to remove them at this time. The *attribute tables, however, are here to stay.

If you require a one-to-many relationship, we recommend using the *property tables, such as collectionobjectproperty and preparationproperty, which are designed for such cases.

The guidance to use the collectionobjectattribute relationship and table still stands!

1 Like